SQL基础和表约束

*列级别约束
非空约束
唯一约束
主键约束
check约束
*表级别约束
外键约束

*SQL
-结构化查询语言(Structured Query Language)
-在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言
-使用SQL语句,程序员和数据库管理员可以完成如下的任务
     改变数据库的结构、更改系统的安全设置、增加用户对数据库或表的许可权限、在数据可中检索需要的信息、对数据库的信息进行更新
*SQL语句分类
-MySql致力于支持全套ANSI/ISO SQL标准
-在MySql数据库中,SQL语句主要可以划分为以下几类:
DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引)的操作。
      CREATE、DROP、ALTER、RENAME、 TRUNCATE等
DML(Data Manipulation Language): 数据操作语言,定义对数据库记录的操作。
      INSERT、DELETE、UPDATE
DQL(Data Query Language): 数据查询语言,用于检索数据库记录的操作。
      SELECT
DCL(Data Control Language): 数据控制语言,定义对数据库、表、字段、用户的访问权限和安全级别。
      GRANT(授权)、REVOKE(撤回)等
Transaction Control:事务控制 ,用于维护数据的一致性
      COMMIT、ROLLBACK、SAVEPOINT等

*SHOW DATABASES[LIKE wild];
-如果使用LIKE wild不符,wild字符串可以是一个使用SQL的”%”和”_”通配符的字符串
-列出在MySql服务器主机上的数据库
*CREATE DATABASE [IF NOT EXISTS]数据库名;
-用给定的名字创建一个数据库
*DROP DATABASE [IF NOT EXISTS]数据库名;
-删除数据库中得所有表和数据库
*USE 数据库名
-把指定数据库作为默认(当前)数据库使用,用于后续语句
*SHOW TABLES[FROM 数据库名][LIKE wild];
-显示当前数据库中已有的数据表的信息
*{DESCRIBE|DESC}表名[列名];
-查看数据表中各列的信息
-用“SHOW CREATE TABLE 表名\G”可以查看更全面的表定义信息
*CREATE TABLE 表名(         列名  列类型,         列名 列类型        );
-在当前数据库中创建一张表
*DROP TABLE[IF EXISTS] 表名;
-删除指定的表

*用ALTER TABLE语句修改表的结构
-修改列类型 ALTER TABLE 表名 MODIFY 列名 列类型;
-增加列      ALTER TABLE 表名 ADD 列名 列类型;
-删除列      ALTER TABLE 表名 DROP 列名;
-列改名      ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
-更改表名   ALTER TABLE 表名 RENAME 新表名;
            RENAME TABLE 表名 TO 新表名;
*在表中增加字段
-使用ADD 子句增加字段,新的字段只能被加到整个表的最后   
     ALTER TABLE employees   
     ADD (gender CHAR(1));
*修改字段
可修改列的数据类型,大小和默认值   
     ALTER TABLEemployees   
     MODIFY(age number(1));
     不是任何情况都可以修改的,当字段只包含空值时,类型、大小都可以修改,否则修改可能不能成功
     修改默认值,只会对以后的插入有作用,对以前已经存在的数据不会有影响
*删除字段
可以从表中删除列:   
     ALTER TABLE employees   
     DROP COLUMN sex;
     从每行中删除掉字段占据的长度和数据,释放在数据块中占用的空间.
     删除大表中的字段将需要比较长的时间,因为还需要回收空间
*删除表
-表中所有数据将被删除
-没有完成的事务被提交
-所有相关的索引被删除
-不能回滚
- 表结构被删除,表对象不再存在
- DROP TABLE table_name;
*更改表名
-rename table ... to ...
-支持一次重命名多个表。
- RENAME TABLE old_table1 TO tmp_table,
- new_table TO old_table,
-tmp_table TO new_table; -完成表名交换。



*数据库对象的命名规则
-必须以字母开头
-可包括数字和三个特殊字符(# _ $)
-不要使用MySQL的保留字
-同一Schema下的对象不能同名

*建表的语句
-标准的建表(table)语法(列定义之间以英文逗号,隔开):
- 数据表的每行称为一条记录(record),每一列称为一个字段(field)。
-主键列:唯一能够标识每条记录的列。
-CREATE TABLE table_name (column_name column_type);
*列类型
MySql支持多种列类型: 数值类型 日期/时间类型 字符串(字符)类型
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值