Sql Server基础篇(一)

Sql Server

MySQL和SQL Server之间的区别:

sql server和mysql都是广泛使用的关系数据库管理系统(RDBMS)

1、mysql支持enum,和set类型,sql server不支持
2、mysql不支持nchar,nvarchar,ntext类型
3、mysql的递增语句是AUTO_INCREMENT,而sql server是identity(1,1)
4、sql server默认导出表创建语句的默认值表示是((0)),而在mysql里面是不允许带两括号的
5、mysql需要为表指定存储类型
6、sql server识别符是[ ],[type]表示他区别于关键字,但是mysql却是 `,也就是按键1左边的那个符号7、sql server支持getdate()方法获取当前时间日期,但是mysql里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数

数据库分类:

  1. 关系型数据库:MySQL、Oracle、DB2、SQL Server
  2. 非关系型数据库:Redis、HBase等等

SQL语言分类:

DDL:数据定义语言(操作数据库)
eg:create、alter、drop、truncate
DQL:数据查询语言(操作数据)
eg:select、from、where
DCL:数据控制语言
eg:grant、revoke
DML:数据操作语言(操作数据,此部分不提交事务可以回滚)
eg:insert、update、delete
TCL:事务控制语言
eg:commit、rollback

delete,drop,truncate 都有删除表的作用,区别在于:

  • 1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。
  • 2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。
  • 3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。(来自菜鸟教程)
/*
*添加外键
*/
Alter Table EmployeeTable
Add Constraint FK_EmployeeTable_GenderID_GenderTable_ID 
Foreign Key (GenderID) References GenderTable (ID)

/*
*添加默认值数据
*/
Alter Table EmployeeTable
Add Constraint Default_Phone_99999
Default 99999 For Phone

当删除本表中的数据是,本表的主键是其他表的外键,这样我们就会出现问题

  1. 不执行任何操作:更新或删除被禁止
  2. 级联:同时被更新或删除
  3. 设置NULL:被设置为NULL、
  4. 设置默认值:被设置为该列默认值

Check Constraint:给列设置条件,检查新插入的数据或者更新的数据是否符合该条件

/*
*添加默认值数据
*/
Alter Table EmployeeTable
Add Constraint CK_Phone
Check (Phone > 0)

Unique Key:设置为Unique的列不允许有重复值得出现,NULL也只能有一个

(主键只能有一个,不允许为null , 但是Unique Key)

你可能感兴趣的:(数据库,mysql,sql)