一、数据类型介绍
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
- 字符类型:char、 varchar、 text blob(二进制)
- 数值类型:int、 bigint、 float 、decimal
bigint-->相当于Java中的long类型
Decimal-->double类型
3、日期类型:date、 time、 datetime、 timestamp
date --> yyyy:MM:dd HH:mm:ss
time --> HH:mm:ss
datetime --> yyyy:MM:dd
timestamp(时间戳) -> 长整数,相当于Java中的new date
二、建表、删表语法
1、表的创建
create table t_mysql_user_test(
id int ,
name VARCHAR(20)
)
2、查看表的结构
desc t_mysql_user_test;
3、表的修改
①修改列名
alter table 表名 add|drop|modify|change column 列名
如:
alter table t_mysql_user_test change column name uname datetime
②修改列的类型或约束
alter table t_mysql_user_test change column name uname VARCHAR
③添加新列
ALTER TABLE author ADD COLUMN annual DOUBLE;
如:
ALTER TABLE t_mysql_user_test ADD COLUMN age int;
④删除列
ALTER TABLE book_author DROP COLUMN annual;
如:
⑤、修改表名
ALTER TABLE author RENAME TO book_author;
如:
ALTER TABLE t_mysql_user_test RENAME TO t_mysql_person_test;
4.表的复制
create table t_mysql_person_test_copy as select * from t_mysql_person_test;
①、只复制部分数据
create table t_mysql_person_test_copy1 as select uname from t_mysql_person_test
②、仅仅复制表的结构,不需要数据
如:
CREATE TABLE t_mysql_person_test_copy2 as select * from t_mysql_person_test where 1=0;
要是不需要复制表的所有结构,就把上面的sql语句中的*换成需要的结构
5、表创建的方法
CREATE TABLE 表名(
字段名 字段类型 列级约束,
字段名 字段类型,
表级约束
)
如:
表级约束:
create table user_1(
id int,
name varchar(20)
primary key(id)
)列级约束:
create table user_1(
id int primary key,
name varchar(20)
)
6、表的约束
MySQL没有检查约束
CREATE TABLE stuinfo(
id INT PRIMARY KEY,#主键
stuName VARCHAR(20) NOT NULL UNIQUE,#非空
seat INT UNIQUE,#唯一
age INT DEFAULT 18,#默认约束
majorId INT REFERENCES major(id)#外键
);
7、修改表时添加约束及删除约束
①、添加非空约束
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL;
②、添加默认约束
ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;
③、添加主键
ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;
④、添加唯一
ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;
⑤、添加主键
ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id);
删除约束:
①、删除非空约束
ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;
②、删除默认约束
ALTER TABLE stuinfo MODIFY COLUMN age INT ;
③、删除主键
ALTER TABLE stuinfo DROP PRIMARY KEY;
④、删除唯一
ALTER TABLE stuinfo DROP INDEX seat;
⑤、删除外键
ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;