表的相关数据 属于 DDL
创建数据库
create database 数据库名 character set utf8;
修改数据库
alter database 数据库名 character set gdk;
创建表
先进入数据库中
CREATE TABLE 表名(
列名1 列的类型 [约束],
列名2 列的类型 [约束],
...
列名n 列的类型 [约束]
); #注意分号
举例:
CREATE TABLE student(
id bigint,
stu_name VARCHAR(50),
stu_age INT
);
表中添加列
ALTER TABLE 表名 ADD 列名 数据类型;
ALTER TABLE student ADD stu_gender TINYINT;
修改一个表的字段类型(修改列的数据类型)
ALTER TABLE 表名 MODIFY 字段名 数据类型;
ALTER TABLE student MODIFY stu_name VARCHAR(30);
修改表名
RENAME TABLE 原始表名 TO 要修改的表名;
修改表的字符集
ALTER TABLE 表明 CHARACTER SET 字符集名称;
以下属于DML
修改表的列名
ALTER TABLE 表名 CHANGE 原始列名 新列名 数据类型;
查看表结构
DESC 表名;
查看表的创建细节
SHOW CREATE TABLE 表名;
删除一列
ALTER TABLE 表名 DROP 字段名(列名);
删除表
DROP TABLE 表名;
插入操作
INSERT INTO 表名 (列名1,列名2,...) VALUE(列值1,列值2,...);
注意
- 列名与列值得类型,个数,顺序要一一对应
- 值不要超出列定义的长度
- 插入的日期和字符一样,都实用引号括起来
INSERT INTO student(id,stu_name,stu_age) VALUE(1,'张三',10);
批量插入 (注意用==VALUES)
INSERT INTO student(id,stu_name,stu_age) VALUES(2,'李四',20),(3,'qq',30);
当列名 不指定时,默认所有的列
INSERT INTO student VALUE(4,'王五',50);
查询表中的所有数据
SELECT * from 表名;
查询指定内容所在行内容
select * from student where id=3;
更新表中行的内容
UPDATE 表名 SET 列名1=列值1,列名2=列值2...WHERE 列名=值
整列分数全部改为90
UPDATE student set stu_score=90;
指定的人的分数改为60
UPDATE student set stu_score=60 WHERE stu_name='张三';
指定的人 改变分数70和年龄100
UPDATE student set stu_age=100,stu_score=70 WHERE stu_name='李四';
指定的人 年龄更改成 原有年龄+1
UPDATE student SET stu_age=stu_age+1 WHERE stu_name='李四';
删除表中的行
DELETE FROM 表名 WHERE 列名=值
删除指定条件 的行,虽说数据被删除,但记录还是保存着,新增数据会从 5开始 (1235)
DELETE FROM student WHERE id=4;
删除表中全部 行, DELETE
删除表中的数据,表结构还在
DELETE FROM student;
删除表中全部 行,但不能指定条件 TRUNCATE
删除是把表直接DROP掉,然后在创建一个同样的表,执行速度比 DELETE快
TRUNCATE TABLE student;
跨数据库复制表
前提没有表,先创建表
1.表结构相同的表,且在同一数据库(如,table1,table2)
insert into table1 select * from table2 (完全复制)
insert into table1 select distinct * from table2(不复制重复纪录)
insert into table1 select top 5 * from table2 (前五条纪录)
2.表不在同一数据库中(如,db1 table1,db2 table2)
insert into db1.table1 select * from db2.table2 (完全复制)
insert into db1.table1 select distinct * from db2.table2(不复制重复纪录)
insert into tdb1.able1 select top 5 * from db2.table2 (前五条纪录)