一、基础
1.创建数据库
CREATE DATABASE `db1`
2.显示已有的数据库
SHOW DATABASES
3.创建tabel
CREATE TABLE tb1 (
empid VARCHAR(10),
name VARCHAR(10),
age INT
);
4.显示所有表
SHOW TABLES
5.指定字符编码创建表
CREATE TABLE tb1 (
empid VARCHAR(10),
name VARCHAR(10),
age INT
) CHARSET = utf8
6.显示表的列结构
DESC tb1
7.向表中插入数据
INSERT INTO tb1 VALUES('A101', 'JIE', 99);
8.查询表数据
SELECT * FROM tb1
9.复制表
-- 将tb1的数据复制到创建表tb1A中
CREATE TABLE tb1A SELECT * FROM tb1
-- 将tb1的数据复制到现有表tb1A中
INSERT INTO tb1A SELECT * FROM tb1
-- 选择其中一列复制
INSERT INTO tb1A(name) SELECT empid FROM tb1
10.删除表中所有记录
DELETE FROM tb1a
11.删除表
-- 删除表tb1a
DROP TABLE tb1a
-- 当表tb1a存在时删除
DROP TABLE IF EXISTS tb1a
12.删除数据库
DROP DATABASE 数据库名
二、数据类型
1.数值类型
常用的数值型数据类型
2.字符串类型
常用的字符串数据类型
3.日期与时间类型
常用的日期与时间数据类型
三、修改表
1.修改表的列结构
修改列的定义:ALTER TABLE ... MODIFY...
添加列:ALTER TABLE...ADD...
修改列名和定义:ALTER TABLE...CHANGE...
删除列:ALTER TABLE...DROP...
后续详细举例
2.修改列的数据类型
ALTER TABLE tb1a MODIFY name VARCHAR(100)
3.添加列
-- 添加列
ALTER TABLE tb1a ADD birth DATETIME
-- 把列添加到最前面
ALTER TABLE tb1a ADD birth DATETIME FIRST
-- 把列添加到任意位置(放在empid后面)
ALTER TABLE tb1a ADD birth DATETIME AFTER empid
4.修改列的位置
ALTER TABLE tb1a MODIFY birth DATETIME FIRST
5.修改列名和数据类型
-- 将birth 更改为 birthday,类型更改为 DATE
ALTER TABLE tb1a CHANGE birth birthday DATE
6.删除列
ALTER TABLE tb1a DROP birth
7.设置主键(PRIMARY KEY)
功能:
1.没有重复的值
2.不允许输入空值(NULL)
CREATE TABLE t_pk (a INT PRIMARY KEY, b VARCHAR(10))
8.设置唯一键(UNIQUE)
功能:
1.不允许重复(允许null)
CREATE TABLE t_uniq (a INT UNIQUE, b VARCHAR(10))
9.设置自增列(AUTO_INCREMENT)
1.数据类型为INT等整数类型
2.加上AUTO_INCREMENT
3.设置PRIMARY KEY,使列具有唯一性
CREATE TABLE t_auto_incr (a INT AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10)) CHARSET = utf8
INSERT INTO t_auto_incr (b) VALUES('子');
INSERT INTO t_auto_incr (b) VALUES('丑');
INSERT INTO t_auto_incr (b) VALUES('寅');
INSERT INTO t_auto_incr (b) VALUES('卯');
10.创建索引
功能:
当表中数据量过于庞大,查找操作就会花费很多时间,建立索引后,查找时就不用对全表进行扫描,可以缩短查找时间。
注:在设置主键的情况下,索引会自动创建。
-- 在表tb1a上给列empid添加索引my_ind
CREATE INDEX my_ind ON tb1a (empid);
11.显示索引
SHOW INDEX FROM tb1a
12.删除索引
DROP INDEX my_ind ON tb1a
注:索引和处理速度的关系
创建了索引并不代表一定会缩短查找时间。因为根据查找条件的不同,有时候不需要用到索引,而且在某些情况下,使用索引反而会花费更多的时间。
例如,人们都说在相同值较多(重复值较多)的情况下最好不要创建索引。我们举一个极端的例子,当某列中只有“YES”和“NO”这两个值时,即使在该列上创建索引也不会提高处理速度。
索引的创建是影响整个数据库处理效率的重要问题。我们把这种提高处理效率的对策称为调优(tuning)