SQL之DDL(增删改数据库.表.列)

1.SQL:Structured Query Language: 结构化查询语言
2.SQL语句不区分大小写,关键字建议使用大写
3. 注释	单行 (--    xxx):有空格
		多行    /* xxx */
4.分类:
	DDL(Definition):操作数据库和表
	DML(Manipulation):对数据库的表中数据进行增删改
	DQL(Query):对数据库的表中数据进行查
	DCL(Control):基于客户端控制数据库的

DDL(Definition):操作数据库和表
1.CRUD数据库
2.CRUD数据库中的表

1.CRUD数据库:

1.C(create):创建
		格式:
			create database 数据库名;
		演示:	
			create database if not exists db1 
			create database db1 character set gbk;
			create database if not exists db1 character set gbk;
			-- db1新建的数据库名称   gbk: 字符集编码

2.R(retrieve):查询
	格式+演示:	
		show databases; -- 查询所有数据库名称
		show create database db3; -- 查询db3数据库的字符集编码
		
3.U(update):修改
	格式+演示:
		alter database db3 character set utf8; -- 修改db3数据库的字符集编码为utf8

4.D(delete):删除
	格式+演示:
		drop database if exists db3; -- 如果db3数据库存在,则删除

5.使用数据库	
	格式+演示:
		use db3; -- db3为数据库名称
		select database(); -- 查询正在使用的数据库

2.CRUD数据库中的表:

1.C(create):创建 
    格式:
    1.创建
   		 create table 表名 (
   				列名1  数据类型,
   				列名x 数据类型,
   				....
   				列名n 数据类型 
   			);
		
    2.复制
  		 create 表名 like 被复制的表名;


			
数据类型:

    表示				类型(参数)								说明
	int        		 整型          							4bytes
	double 			 浮点型(总长度n1,精确到小数后几位n2) 	    8bytes 
	date 			yyyy-MM-dd 								3bytes
	datetime 		yyyy-MM-dd HH:mm:ss						8bytes
	varchar    		 字符串(总长度n)							0~65535bytes
	timestamp		yyyy-MM-dd HH:mm:ss   					4bytes

将timestamp数据类型设定为:
		 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
才能默认获取系统时间并自动更新				

    演示:	
    create table if not exists student(
    				id int(11),
    				name varchar(20),
    				birthday date,
    				score double(3,1)
    				);

2.R(retrieve):查询
	格式+演示:
		show tables; -- 查询正在使用的数据库中的所有表名称
		desc password_history -- password_history为正在使用的数据库中的表名称
		show create table student; -- 查询student表的字符编码
	
	3.U(update):修改
		1.重命名表名:
			alter table 表名 rename to 新的表名;
		2.修改表的字符编码:	
			alter table 表名 character set utf8; 
		3.添加列
			alter table 表名 add 列名 数据类型;
		4.修改列和列的数据类型:(可重复相当于未改动)
			alter table 表名 change 列名  新列名 新数据类型;    (列名和数据类型都改)
			alter table 表名 modify 列名  新数据类型;                (仅改数据类型)
		5.删除列:
			alter table 表名 drop 列名;
4.D(delete):删除
	格式+演示:
		drop table if exists 表名; -- 如果student表存在,则删除

你可能感兴趣的:(SQL)