#查看数据库
SHOW DATABASES;#选中一行或者多行,点击左上角的运行按钮
#删除kj11_day01数据库(判断数据库是否存在:if exists)
DROP DATABASE IF EXISTS kj11_day01;
#创建kj11_day01数据库(判断数据库如果不存在则创建:if not exists)
CREATE DATABASE IF NOT EXISTS `kj11_day01`CHARACTER SET utf8 COLLATE utf8_bin;
#切换数据库(关键词:use(库名))
USE kj11_day01;
#删除表
#drop table if exists student;
/*
结构化查询语句:
DDL:数据定义语言
DML:数据操作语言
DQL:数据查询语言
DCL:数据控制语言
*/
/*
列类型包括:
1.数值类型:
1)tinyint:非常小的数据 1字节
2)smallint:较小的数据 2字节
3)mediumint:中等大小的数据 3字节
4)int:标准整数 4字节
5)bigint:较大的整数 8字节
6)float:单精度浮点数 4字节
7)double:双精度浮点数 8字节
8)decimal:字符串形式的浮点数 m个字节
2.字符串类型
1)char[(M)]:固定长度字符串0<=M<=255 M字符
2)varchar[(M)]:可变字符串0<=M<=65535 变长度
3)tinytext:微型文本串 2的八次方-1字节
4)text:文本串 2的十六次方-1字节
3.日期和时间型数值类型
1)DATE:YYYY-MM-DD,日期格式 取值范围:1000-01-01~9999-12-31
2)TIME:Hh:mm:ss ,时间格式 取值范围:-838:59:59~838:59:59
3)DATATIME:YY-MM-DD hh:mm:ss日期+时间格式 取值范围:1000-01-01 00:00:00~9999-12-31 23:59:59
4)TIMESTAMP:YYYYMMDDhhmmss格式表示的时间戳 取值范围:197010101000000 ~2037年的某个时刻
5)YEAR:YYYY格式的年份值 取值范围:1901~2155
4.null值
1)理解为“没有值”或“未知值”
2)不要用NULL进行算术运算,结果仍为NULL
常用列类型:
1.tinyint:非常小的数据
2.int:标准整数
3.double:双精度浮点数
4.char[(M)]:固定长度字符串0<=M<=255
5.varchar[(M)]:可变字符串0<=M<=65535
6.text:文本串
7.DATATIME:YY-MM-DD hh:mm:ss日期+时间格式
*/
/*
数据字段属性:
UNSIGNED
1)无符号的
2)声明该数据列不允许负数
ZEROFILL
1)0填充的
2)不足位数的用0来填充,如 int(3),5则为 005
AUTO_INCREMENT
1)自动增长的,每添加一条数据,自动在上一个记录数上加1
2)通常用于设置主键,且为整数类型
3)可定义起始值和步长
NULL 和 NOT NULL
1)默认为NULL,即没有插入该列的数值
2)如果设置为NOT NULL,则该列必须有值
DEFAULT
1)默认的
2)用于设置默认值
*/
/*
数据表类型:
1.MyISAM
1)事务处理: 不支持
2)数据行锁定: 不支持
3)外键约束: 不支持
4)全文索引: 支持
5)表空间大小: 较小
2.InnoDB
1)事务处理: 支持
2)数据行锁定: 支持
3)外键约束: 支持
4)全文索引: 不支持
5)表空间大小: 较大,约两倍
使用MyISAM: 节约空间及相应速度
使用InnoDB: 安全性,事务处理及多用户操作数据表
InnoDB类型数据表只有一个*.frm文件,数据文件为上一级目录的 ibdata1 文件
MyISAM类型数据表对应三个文件:
*.frm -- 表结构定义文件
*.MYD -- 数据文件
*.MYI -- 索引文件
*/
/*
CHARSET = utf8;修改数据表字符集
数据表创建方法:
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
)[ 表类型 ] [ 表字符集 ] [注释] ;
模拟:
CREATE TABLE IF NOT EXISTS `student`(
sid INT(11) NOT NULL AUTO_INCREMENT,
sname VARCHAR(50) COLLATE utf8_bin NOT NULL COMMENT '学生姓名',
score DOUBLE NOT NULL,
# 主键 唯一插入的时候不能重复的学生sid
PRIMARY KEY(`sid`)
)ENGINE =INNODB CHARSET=utf8 COLLATE=utf8_bin COMMENT'学生名单';
*/
/*
删除数据表: DROP TABLE [ IF EXISTS ] 表名
*/
#创建student表
CREATE TABLE IF NOT EXISTS `student`(
sid INT(11) NOT NULL AUTO_INCREMENT,
sname VARCHAR(50) COLLATE utf8_bin NOT NULL COMMENT '学生姓名',
score DOUBLE NOT NULL,
# 主键 唯一插入的时候不能重复的学生sid
PRIMARY KEY(`sid`)
)ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_bin COMMENT'学生名单';
#查看数据库中存在的表
SHOW TABLES;
#修改表名
ALTER TABLE student RENAME AS deathlist;
#查看表
SHOW TABLES;
#查看表描述的信息
DESCRIBE deathlist;
#插入一条记录
INSERT INTO deathlist(sid,sname,score) VALUES (100,'龙傲天',100.0);
#测试再加一条记录
INSERT INTO deathlist(sid,sname,score) VALUES (101,'蛮美美',88.0);
#查看表记录的信息
SELECT * FROM deathlist;
#添加字段
ALTER TABLE deathlist ADD xinbie VARCHAR(2);
#修改字段的属性类型
ALTER TABLE deathlist MODIFY score INT(20);
DESCRIBE deathlist;
#修改字段的字段名和属性提供默认值 关键词:default(默认值)
#设置一个约束选择不是男就是女
ALTER TABLE deathlist CHANGE xinbie sex CHAR(2) DEFAULT'男';
DESCRIBE deathlist;
#自增
INSERT INTO deathlist(sname,score) VALUES ('张三',78.0);
SELECT * FROM deathlist;
#删除字段
ALTER TABLE deathlist DROP sex;
SELECT * FROM deathlist;
3036

被折叠的 条评论
为什么被折叠?



