`
ghost_face
  • 浏览: 54421 次
社区版块
存档分类
最新评论

数据库基本语法(SqlServer,MySql)

阅读更多
数据库简单语句:注释(开头--)

  1》创建库

create database LiangshanHeros

   表和列的命名规则(SqlServer 2000):

  • 必须以字母,下划线,或者汉字开头(最好是以字母开头);
  • 长度不能超过128个字符;
  • 不能使用系统保留字;
  • 只能使用如下字符A-Z,a-z,0-9,$,#,_等;

  2》使用数据库

use LiangshanHeros


  3》创建表

create table hero
      (heroId int primary key, --排名
       heroName varchar(50),--名字
       heroNickName varchar(50),--外号
       sex char(2)
       )

 注:如果有外键,则需要再类型后面加上 foreign key reference 另一个表名(另一个表的主键)

 复合主键的例子:

create table test2
(testId int ,
 testName varchar(30),
 testAge int,
 primary key(testId, testName) --指明复合主键
)


维护数据的完整性--约束:

  约束有五种:not null;unique;primary key;foreign key;check;    
  • 1,unique:约束该列值是不能重复的,但是可以是NULL(不能又多个NULL值,否则违反不可重复)
           主键:不可重复,且不能为NULL。
           一个表最多只能有一个主键,但是可以有多个unique约束。
  • 2,check的举例:

 

   create table test3
  (testId int ,
 testAge int check(testAge>0 and testAge<150)
)

 
   4》插入数据

insert into hero values(1, '宋江', '及时雨', '男')

      插入数据的语法:insert into 表名(字段列表) values(值列表)
   5》查询

select * from hero where heroId>2

   6》修改

update hero set sex='女' where heroId=1

     更新数据的语法;update 表名 set 字段名1=?,字段名2=? where 条件
   7》删除记录

delete from hero where sex='女'
 数据库复杂查询语句

   1》查询指定列:select 字段1,字段2 from 表名 where 条件;
   2》取消重复行

select distinct 字段列表 from 表名 where 条件;
    3》算术表达式:
       处理null值函数:isnull(字段,0),如果该字段为NULL,则返回0,如果不为NULL,则返回字段值;
       between 1 and 100:范围在[1,100]区间
   4》like(模糊查询):%代表0到多个字符; _代表单个字符;
    5》in(批量查询):where 字段 in (x,y,z ……)
    6》order by
select 字段 from 表 order by 待排序的字段1 asc(升序)/desc(降序),待排序字段2 asc/desc
     7》分页查询:select top XX 字段 from ……
         注:XX指显示从1~XX 行的结果
         例:如果想取出从x到y条数据,则应使用嵌套查询。
select top y-x+1 * from 表A where 字段2 not in
(select top x-1 字段 from 表A order  by 字段2)
order by 字段2
        分析:排除前x-1条数据,从x条开始挑出y-x+1条数据,即可。
        注意,最后的order by 不能省略,否则会出错。
    8》聚合函数:max,min,avg,sum,count;  
         注:聚合不能出现在where子句中,除非聚合位于Having子句,或者子查询中……
    9》SQL语句优化的原则:尽可能把最好的条件写在最右面。最好的条件指能使结果最好的的条件;
   10》统计函数:count,如果统计行数,一般写select count(*) from 表名;
   11》group by:用于对查询的结果分组统计
   12》having:用于限制分组显示结果。往往和group by 结合使用,可以对分组结果进行再次筛选。
         总结:按这样的顺序写SQL语句:group by,having,order by; 
   13》多表查询:
select 字段1,字段2,a.字段3
              from 表A a,表B b
              where a.字段X=b.字段Y
      其中,a和b分别是表A和B的别名,一旦用别名,最好都用别名
   14》 单行子查询(即查询结果是单行数据)用=,多行子查询用in;
   15》匹配字段为空的条件时,不能用=null,而是用 is null,否则条件不满足。
SqlServer 2000支持的数据类型
12,支持的数据类型:
    1》字符型:
    char和varchar都是非unicode编码;
    nchar和nvarchar都是unicode编码;
    注:一般带有汉字的字段类型用nvarchar,全英文或符号的用varchar
    2》数字型:
     bit:0或1
     int:
     bigint:
     float:存放小数时,需要指定尾数的位数,不推荐使用
     numeric:存放小数,需要指定小数的总位数,和尾数的位数,比较灵活;
     3》日期类型:
     datatime:表示日期,毫秒级;
     timestamp:时间戳;
     4》图片
      image:保存图片,但是很少用。一般的做法是保存图片的路径,根据路径到图片服务器(或图床)。因此一般图片都不放在数据库中;在图片有安全要求时,可以考虑放入数据库,且图片不能太大,否则数据库负载较重。
      5》视频
      binary:跟图片的道理雷同,很少用。
SqlServer 2000 数据库的备份和恢复
1,使用企业管理器完成备份和恢复:分离和附加数据库;备份和还原。
2,使用查询分析器完成备份和恢复(即命令行):
  --备份
  backup database 数据库名字 to disk='F:\\backup.bak'
  --删除数据库
  drop database 数据库名字
  --还原
  restore database 你的数据库名字 from disk='备份文件路径'
注:有时可能不需要备份整个数据库,只需要备份表,自己在网上搜索。
MySql:
1,命令行连接MySql数据库:mysql -u 用户名 -p密码
      注意:-p与密码之间没有空格。
2,MySql的基本语法
1》show databases;
2》use 数据库名;
3》show tables;
4》create database [if not exists] 数据库名 [character set utf8];
     注:查看之前创建数据库的指令:
show create database 数据库名;
5》drop database 数据库名;
6》备份数据库:mysqldump -u 用户名 -p密码 数据库名 > 文件名.sql
     注:该指令是在DOS下执行的,不能在Mysql命令行控制台使用
7》恢复数据库:source 文件名.sql
     注:要先创建一个数据库,名字可以自拟,并进入该数据库。该指令是在Mysql命令行控制台使用的。
 
Java操作SqlServer
1,JDBC驱动的分类:jdbc-odbc桥连;本地协议纯Java驱动;网络协议纯java驱动;本地API。(前两个用的比较多)
2,jdbc的不足:不能更好的实现跨数据库操作,于是诞生了Hibernate项目。Hibernate是对jdbc的再封装,实现了对数据库操作更宽泛的统一和更好的移植性。
3,Statement和PreparedStatement的区别:
都可以执行Sql语句,但后者有预编译功能,更适合多次重复操作,或者批量操作,能够提高执行效率;
其次,后者可以在程序中使用?赋     值,能有效的防止SQL注入漏洞;
--SQL注入漏洞例子:
 。。。。
4,如果使用jdbc-odbc,不需要引入任何包,如果使用jdbc方式,需要引入jar包。
分享到:
评论

相关推荐

    mysql数据库转换成SQLserver数据库

    "mysql数据库转换成SQLserver数据库"这个主题主要涵盖以下几个关键知识点: 1. **数据迁移**:数据迁移是从一个数据库系统到另一个数据库系统的数据传输过程。在这个过程中,我们需要确保所有数据完整无损地从MySQL...

    从mysql数据库迁移至sqlserver数据库

    首先,MySQL和SQL Server是两种不同的关系型数据库管理系统(RDBMS),它们之间存在一些语法和数据类型的差异。MySQL常用的数据类型如`TEXT`在SQL Server中对应的是`VARCHAR(MAX)`或`NVARCHAR(MAX)`。在迁移过程中,...

    mysql数据库转换成sql server

    MySQL数据库和SQL Server是两种广泛使用的数据库管理系统,它们在语法、功能和管理上存在显著差异。将MySQL数据库转换成SQL Server是一项常见的需求,特别是在企业级应用迁移或整合项目中。以下是一些关于如何进行...

    MySQL数据库转移到SqlServer数据库

    提到的博客文章“将MySQL数据库转移到SqlServer2008数据库”可能提供了具体的步骤和工具。常见的迁移工具包括: - **SQL Server Migration Assistant (SSMA)**:微软官方的工具,支持多种数据库向SQL Server的迁移...

    mysql数据库转换成SQLserver工具包

    MySQL到SQL Server转换工具包是针对数据库管理员和开发人员的一款实用工具,它的主要功能是将MySQL数据库结构和数据无缝地迁移到SQL Server环境中。这样的转换对于那些需要在不同数据库系统间进行迁移或整合项目的...

    数据库转换工具MySQL 转为SqlServer 脚本

    - **分析和转换**:SSMA会扫描MySQL数据库,识别其结构,并尝试将其转换为SQL Server的语法。 - **评估和修复**:转换后,工具会提供一份报告,指出可能存在的不兼容问题。开发者需要根据报告修复问题,例如调整...

    MySQL数据库迁移sqlServer2008

    MySQL数据库向SQL Server 2008的迁移是一项常见的任务,尤其在企业级应用中,可能因为业务需求、系统升级或数据库性能优化等原因需要进行这种迁移。以下将详细阐述整个迁移过程中的关键步骤、可能遇到的问题及解决...

    sql 数据库导入 mysql数据库的工具 sql 转化mysql

    标题中的"sql 数据库导入 mysql数据库的工具 sql 转化mysql"主要指的是将SQL Server的数据转换并导入到MySQL数据库中。这是一个多步骤的过程,涉及到数据的提取、转换和加载。 1. **数据提取**:首先,你需要从SQL ...

    Navicat客户端sqlserver表结构转到mysql数据库中操作文档

    由于SQL Server和MySQL在语法上有些差异,你需要检查并可能修改这个脚本来适应MySQL的语法。例如,SQL Server的`datetime`在MySQL中可能是`datetime`或`timestamp`,视具体需求而定。 3. **创建MySQL的表结构**: ...

    SQL Server数据库转Mysql数据库工具的一款工具

    标签中提到了"SQLSERVER", "MSSQL", "MYSQL", "数据库", "转换",这些都是与数据库迁移密切相关的关键词。"SQLSERVER"和"MSSQL"通常指SQL Server,而"MySQL"是目标数据库系统。"数据库"指的是这些工具操作的对象,而...

    SQL Server转换为MySQL工具

    SQL Server是微软公司推出的一款关系型数据库管理系统,而MySQL则是由Oracle公司维护的开源、免费的DBMS。有时,由于业务迁移、成本优化或者技术栈的变化,用户可能需要将SQL Server的数据转换到MySQL中。这时,...

    SQL Server数据库数据转MySQL工具

    4. **兼容性问题**:SQL Server特有的功能可能在MySQL中没有对应,比如某些T-SQL语法、触发器、特定函数等。转换工具需要有能力识别这些问题,并提供替代方案或转换策略。 5. **性能优化**:大规模数据迁移时,工具...

    mysql转化成sql server sql转化成mysql工具

    2. 转换规则应用:根据SQL Server的语法特性,工具会将MySQL的SQL语句转化为相应的SQL Server语法。 3. 数据导出:将MySQL中的数据导出为SQL脚本,或者直接导入到SQL Server中。 4. 验证与调整:迁移后,需要验证...

    SQL Server 和 MySql 语法和关键字的区别——用于SQLServer到MySql的转换

    SQL Server 和 MySql 语法和关键字的区别——用于 SQLServer 到 MySql 的转换 SQL Server 和 MySql 是两种常用的关系型数据库管理系统,但是它们之间存在一定的语法和关键字差异。这些差异使得开发者在从 SQL ...

    sqlserver数据库关联mysql

    在SQL Server数据库中关联并操作MySQL数据库是一种跨数据库平台的数据集成技术,这使得用户能够从SQL Server环境中查询、更新或管理MySQL中的数据。本篇文档将深入探讨这一主题,包括如何建立连接、配置ODBC驱动以及...

    SQL server数据库转 MySQL数据库

    SQL Server和MySQL是两种广泛应用的关系型数据库管理系统,分别由微软公司和甲骨文公司提供。本文将深入探讨如何将SQL Server数据库转换为MySQL数据库。 1. **SQL Server与MySQL的异同** SQL Server是微软提供的一...

    SQL Server 和 MySql 语法和关键字的区别

    在数据库领域,SQL Server 和 MySQL 是两种广泛应用的关系型数据库管理系统,它们在语法和关键字上有一定的差异。以下将详细解析这些不同之处,以便于在从 SQL Server 迁移到 MySQL 或反之亦然时能顺利进行转换。 1...

    基于SQL Server链接服务器实现Proficy Historian数据库的访问.pdf

    - 通过链接服务器,SQL Server可访问的数据库类型不限于SQL Server,还包括Oracle、DB2、MySQL等其他数据库系统,以及实时数据库系统如Proficy Historian。 - 这种链接技术的优势在于能够跨数据库进行数据的整合,...

    数据库实验一实验一 熟悉数据库管理工具、数据库和表的基本操作 一、实验目的: 1.了解SQL Server或MYSQL数据库的基本知识; 2.熟悉SQL Se

    实验一主要目标是熟悉数据库管理工具,如SQL Server或MySQL,并掌握基本的数据库和表的操作。这包括了解数据库的基本知识,熟悉其环境和系统结构,以及掌握如何使用图形化交互工具进行数据库及表的创建与管理。核心...

    SQL Server数据库迁移Mysql数据库工具

    首先,SQL Server和MySQL之间的主要差异在于它们的架构、语法和性能优化策略。SQL Server通常与Windows操作系统紧密集成,而MySQL则跨平台且开源,因此在迁移过程中需要考虑这些差异对应用程序的影响。 要进行SQL ...

Global site tag (gtag.js) - Google Analytics