数据库:
-操作表:
-表: 相当关于文件
增
-create tanle 表名(
字段名 列类型 [可选参数],
字段名 列类型 [可选参数])charset=utf8;
注意 : 每一列最后加逗号,最后一列不加!
列约束(不约束关键字大大小写):
-
auto_increment : 自增
-
primary key : 主键索引,加快查询速度,列的值不能重复
-
NOT NULL : 标识该字段不能为空
-
DEFAULT : 设置默认值
create table t1(
id int ,
name char(5)
)charset = utf8;
#- 增加数据: --> 创建新的一列
insert into 表名 (列1,列2) values (值1,"值2");
insert into t1 (id,name) values (1,'zekai');
# - 查询数据:
select 列1,列2 from 表名 查询单个列的值
select * from 表名 查询表内所有的内容
create table t2(
id int auto_increment primary key,
name char(10)
)charset = utf8;
insert into t2 (name) values ('zekai');
# --建表模板 :
create table t3(
id int unsigned auto_increment primary key,
name char(10) not null default 'xxx',
age int not null default 0
)charset = utf8;
insert into t3 (age) values (29);
列类型:
-create table 表名(create table 表名(
字段名 列类型 unsigned [可选的参数],## 记住加逗号
字段名 列类型 [可选的参数], ### 记住加逗号
字段名 列类型 [可选的参数] ### 最后一行不加逗号
.....
)charset=utf8
数字:
#--整形 :
tinyint(-127,128) / smallint / int(推荐)
mediumint / bigint
区别 :
-a.整数类型
-b.取值范围 ,应场景,选取合适的
-c.unsigned 加上代表不能取负数
#--浮点数 :
float : 不一定精确
decimal : 非常精确的数字
- eg:decimal(m,n) m : 数字的总个数,n : 小数的个数
create table t4(
id int auto_increment primary key,
salary decimal(8,6),
num float
)charset=utf8;
正好 10 位:
mysql> insert into t5 (salary, num) values (500023.2312345678, 5000.2374837284783274832);
Query OK, 1 row affected (0.04 sec)
mysql> select * from t5;
+----+-------------------+---------+
| id | salary | num |
+----+-------------------+---------+
| 1 | 500023.2312345678 | 5000.24 |
+----+-------------------+---------+
1 row in set (0.00 sec)
少于10位:
mysql> insert into t5 (salary, num) values (500023.231234567, 5000.2374837284783274832);
Query OK, 1 row affected (0.04 sec)
mysql> select * from t5;
+----+-------------------+---------+
| id | salary | num |
+----+-------------------+---------+
| 1 | 500023.2312345678 | 5000.24 |
| 2 | 500023.2312345670 | 5000.24 |
+----+-------------------+---------+
多于10位:
mysql> insert into t5 (salary, num) values (500023.23123456789, 5000.2374837284783274832);
Query OK, 1 row affected, 1 warning (0.03 sec)
mysql> select * from t5;
+----+-------------------+---------+
| id | salary | num |
+----+-------------------+---------+
| 1 | 500023.2312345678 | 5000.24 |
| 2 | 500023.2312345670 | 5000.24 |
| 3 | 500023.2312345679 | 5000.24 |
+----+-------------------+---------+
字符串 :
-char(n) : n 表示固定长度
-varchar(m) : m 表示可变长长度
区别 :
char : 定长, 无论插入的字符是多少个,永远固定占规定的长度(加密)
varchar : 变长, 根据插入的字符串的长度来计算所占的字节数,但是有一个字节是用来保存字符串的大小的
注意 : 不能确定插入的数据的大小, 一般建议使用 varchar(255)
时间日期类型 :
YEAR
YYYY(1901/2155)
DATE
YYYY-MM-DD(1000-01-01/9999-12-31)
TIME
HH:MM:SS('-838:59:59'/'838:59:59')
DATETIME (推荐)
YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)
TIMESTAMP
YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
create table t8(
d date,
t time,
dt datetime) ;
insert into t8 values(now(),now(),now());
枚举: enum
列出所有的选项, 只能在该范围内选择
create table t9(
id int auto_increment primary key,
gender enum('male','female')
)charset=utf8;
insert into t9 (gender) values ('female');
删 :
- drop table 表名
改 :
-修改表名 :alter table old_表名 rename new_表名
-
增加字段 : alter table 表名 add 字段名 列类型 [可选择的参数];
alter table 表名 add 字段名 列类型 [可选择的参数] first ;
- #### 加载在第一列
alter table 表名 add 字段名 列类型 【可选择的参数】 after 字段名1;
-加载在字段名1后面
-删除字段 :
- alter table 表名 drop 字段名;
查:
-
show tables;
-
show create table 表名 : 查看表的创建语句
复制表结构 :
-create table 表名 like old_表名