MySQL学习笔记三:DDL语言

DDL语言:数据定义语言,主要是库和表的管理

一、库的管理

1.库的创建
	语法:create database [if not exists] 库名;
	案例:创建库Books
	create database Books;
2.库的修改
	库名的修改:没有单独的SQL语句,一般不修改库,
	更改库的字符集:
	alter database [books] character set gbk;
3.库的删除
	drop database if exists [books];

注:建库的通用写法:
drop database if exists 库名;
create database 库名;

二、表的管理

1.表的创建
create table 表名(
			列名  列的类型【(长度)约束】
			列名  列的类型【(长度)约束】
);
案例:创建表book
create table book(
			id int,
			bName varchar(20),
			price double,
			authorId int,
			publishDate datetime
);
2.表的修改
语法:
	alter table 【表名】 change|modify|add|drop|rename column 列名 【列类型 约束】;
(1)修改列名
	alter table [book] change column [publishdate] [pubDate] Datetime;
	语法:alter table 【表名】 change column 【原列名】【新列名】列的数据类型;
(2)修改列的类型或约束
	alter table [book] modify column [pubdate] timestamp;
	语法:alter table 【表名】modify column 【列名】列类型;3)添加新列
	alter table [author] add colunm [annual] [double];
	语法:alter table 【表名】 add column 【新列名】【新列类型】
(4)删除列
	alter table [author] drop column [annual];
	语法:alter table 【表名】 drop column 【列名】;5)修改表名
	alter table [author] rename to [book_author]
	语法:alter table 【表名】rename to【新表名】
3.表的删除
drop table if exists book_author;
desc book_author;		#查看book_author表
show books; 		#查看当前库所有表
4.表的复制
	(1) 仅仅复制表的结构
	create table [copy] like author;	#将author表中的结构复制到copy中
	语法:create table 【需要复制的表】 like 【被复制的表】

	(2)复制表的结构+数据
	create table copy2
		(a)只复制部分数据
		create table copy3
		select id,au_name
		from author
		where nation='中国';
		(b)只复制某些字段(不要数据,只需要这两列的结构)
		create table copy4
		select id,au_name
		from author 
		where 0;

三、数据类型介绍

1.常见的数据类型

数值型: 整型、小数(定点数,浮点数)
字符型:
较短的文本:char,varchar
较长的文本:text,blob(较长的二进制数据)
日期型

2.整型:

分类:tinyint、smallint、mediumint、int/integer、bigint
特点:
(1)如果不设置无符号还是有符号,默认有符号;如果想设置无符号,则需要添加 unsigned
(2)如果插入的数值超过了整型的范围,会报out of range异常,并且插入临界值
(3)如果不设置长度,会有默认的长度;长度代表显示的最大宽度,如果不够会用0在左边填充,但必须搭配zerofill使用

1.如何设置无符号和有符号
drop table if exists tab_int;
create table tab_it(
	t1 int(7) zerofill ,
	t2 int unsigned
);
#zerofill表示0填充,即将123表示成0000123

2.小数

1.浮点型
	float(M,D)
	double(M,D)
2.定点型
	dec(M,D)
	decimal(M,D)
特点:
(1)M:(整数部位+小数部位)长度
	D:小数部位长度
	如果超过范围,则插入临界值
(2)M和D都能省略;如果是decimal,则M默认是10,D默认为0
	如果是floatdouble,则会根据插入的数值的精度来决定精度
(3)定点型的精确度较高,如果要求插入数值的精度较高如货币运算,则考虑使用

选择数据类型原则:
所选择的类型越简单越好

3、字符型

#注:字符数和字节数的区别:一个汉字是一个字符,但是两个字节

			写法		M的意思		特点			空间的耗费		效率
char	 char(M)	最大的字符数	固定长度的字符	比较耗费	高
varchar	varchar(M)	~			可变长度的字符	节省			低

案例:创建表,并设置列数据格式
create table tab_char(
	s1 set('a','b','c','d')
);
insert into tab_char value('A','B');

4、日期型

date:日期
datetime:日期+时间
timestamp:日期+时间
time :时间
year:年
注:Timestamp和实际时区有关,更能反映实际日期;
	datetime只能反映插入时的当地时区
案例:
create table tab_date(
	t1 datetime
	t2 timestamp
);
insert into tab_date values(now(),now());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值