首页 > 数据库技术 > 详细

SQL 基础应用

时间:2019-09-15 22:54:32      阅读:92      评论:0      收藏:0      [点我收藏+]

#表属性

  - 列属性

 1 约束(一般建表时添加):
 2 **primary key** :主键约束
 3 设置为主键的列,此列的值必须非空且唯一,主键在一个表中只能有一个,但是可以有多个列一起构成。
 4 **not null**      :非空约束
 5 列值不能为空,也是表设计的规范,尽可能将所有的列设置为非空。可以设置默认值为0
 6 **unique key** :唯一键
 7 列值不能重复
 8 **unsigned** :无符号
 9 针对数字列,非负数。
10 
11 其他属性:
12 **key** :索引
13 可以在某列上建立索引,来优化查询,一般是根据需要后添加
14 **default**           :默认值
15 列中,没有录入值时,会自动使用default的值填充
16 **auto_increment**:自增长
17 针对数字列,顺序的自动填充数据(默认是从1开始,将来可以设定起始点和偏移量)
18 **comment ** : 注释

  - 表的属性

1 存储引擎:
2   InnoDB(默认的)
3 字符集和排序规则:
4   utf8       
5   utf8mb4

#DDL应用

  ##库定义

 1 #创建数据库
 2 create database school;
 3 create schema sch;
 4 show charset;
 5 show collation;
 6 CREATE DATABASE test CHARSET utf8;
 7 create database zyc charset utf8mb4 collate utf8mb4_bin;
 8 
 9 建库规范:
10 1.库名不能有大写字母   
11 2.建库要加字符集         
12 3.库名不能有数字开头
13 4. 库名要和业务相关
1 #建库标准语句
2 mysql> create database db charset utf8mb4;
3 mysql> show create database testdb;
1 #删除数据库
2 mysql> drop database oldboy;
1 #修改数据库
2 SHOW CREATE DATABASE school;
3 ALTER DATABASE school  CHARSET utf8;
4 注意:修改字符集,修改后的字符集一定是原字符集的严格超集
1 #查询库相关信息
2 show databases;
3 show create database oldboy;

  ##表定义

1 #创建表
2 create table stu(
3 列1  属性(数据类型、约束、其他属性) ,
4 列2  属性,
5 列3  属性
6 )
 1 #建表范例
 2 USE school;
 3 CREATE TABLE stu(
 4 id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 学号,
 5 sname   VARCHAR(255) NOT NULL COMMENT 姓名,
 6 sage    TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 年龄,
 7 sgender ENUM(m,f,n) NOT NULL DEFAULT n COMMENT 性别 ,
 8 sfz     CHAR(18) NOT NULL UNIQUE  COMMENT 身份证,
 9 intime  TIMESTAMP NOT NULL DEFAULT NOW() COMMENT 入学时间
10 ) ENGINE=INNODB CHARSET=utf8 COMMENT 学生表;
11 
12 #建表规范
13 表名小写
14 不能是数字开头
15 注意字符集和存储引擎
16 表名和业务有关
17 选择合适的数据类型
18 每个列都要有注释
19 每个列设置为非空,无法保证非空,用0来填充。
1 #删除表
2 drop table t1;
 1 #修改表
 2 ##添加一个新列
 3 DESC stu;
 4 ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT qq号;
 5 
 6 ##在sname后添加一个新列【AFTER】
 7 ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE  COMMENT 微信号 AFTER sname ;
 8 
 9 ##在id列前加入一个新列【FIRST】
10 ALTER TABLE stu ADD num INT NOT NULL COMMENT 数字 FIRST id;
11 DESC stu;
12 
13 ##删除列
14 ALTER TABLE stu DROP num;
15 ALTER TABLE stu DROP qq;
16 ALTER TABLE stu DROP wechat;
17 
18 ##修改列属性
19 ALTER TABLE stu MODIFY sname VARCHAR(128)  NOT NULL ;
20 
21 ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT n ;
22 DESC stu;

 

 

  

SQL 基础应用

原文:https://www.cnblogs.com/crossworld/p/11524243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!