字符型要用单引’ ’ 引起来
整数型和浮点不用加’ ’
数据空值是null
设置主键值后(PRI) name要唯一 不能重复
自增的话必须要设置成主键值key值
建表一定要有列
数据类型
1 整型(是没有小数的)
作用:用于存储用户的年龄、游戏的Level、经验值等。
分类:tinyint smallint mediumint int bigint
常用的是int
比如:bigint(2) 2是显示宽度
2.浮点数类型 FLOAT DOUBLE
作用:用于存储用户的身高、体重、薪水等
float(5.3) #一共5位,小数占3位.做了限制
3.字符串类型
作用:用于存储用户的姓名、爱好、电话,邮箱地址,发布的文章等
字符类型 char varchar --存字符串
- char表示定长字符串,长度是固定的
- varchar表示可变长字符串,长度是可变的(字符比较少的话就用varchar)
- text 文本 长文本(字符比较多的话建议使用text)
4.枚举类型 enum 就是二选一
mysql> create table t101(name enum(‘tom’,‘jim’));
只能从tom,jim两个里面2选其1
(enumeration)
有限制的时候用枚举
5.日期类型
只要时间就写time 只要日期就写date,俩个都要就写 datetime
===时间和日期类型测试:year、date、time、datetime、timestamp(时间戳)
作用:用于存储用户的注册时间,文章的发布时间,文章的更新时间,员工的入职时间等
注意事项:
year存年份 date存日期 time存时间
datetime存年月日带时间
timestamp时间标记 可以带纳秒和毫秒和时区
==插入年份时,尽量使用4位值
==插入两位年份时,<=69,以20开头,比如65, 结果2065
如何插入数据
插入数据时要正行正行的插入 不允许有空格
INSERT into qf2401.t2(name,age,uid,gid,a) values(‘tom’,‘20’,13,13,12.35)
也可以这样插入
INSERT into qf2401.t2 values(‘jack’,‘20’,13,13,12.35)
数据没有如何插入
字符为空值就是俩个单引
整数为空值就是null
INSERT into qf2401.t2(name,age,uid,gid,a) values(’ ‘,’ ',null,null,12.351)
更改数据
UPDATE qf2401.inio set uid=2000,gid=‘2000’ WHERE username =‘zhangsan’
UPDATE qf2401.inio set uid=2000,gid=‘2000’ WHERE username =‘zhangsan’
删除单条数据
DELETE FROM qf2401.inio 删数据,表格的列(字段)还在,表格里面每一行的数据会被清理掉
DELETE FROM qf2401.inio where username= ‘zhangsan’
drop 连结构带数据一起清空
查询数据库
测试表:company.employee5
mysql> create database company; #创建一个库;
创建一个测试表:
mysql> CREATE TABLE company.employee5(
id int primary key AUTO_INCREMENT not null,
name varchar(30) not null,
sex enum('male','female') default 'male' not null,
hire_date date not null,
post varchar(50) not null,
job_description varchar(100),
salary double(15,2) not null,
office int,
dep_id int
);
插入数据:
mysql> insert into company.employee5(name,sex,hire_date,post,job_description,salary,office,dep_id) values
('jack','male','20180202','instructor','teach',5000,501,100),
('tom','male','20180203','instructor','teach',5500,501,100),
('robin','male','20180202','instructor','teach',8000,501,100),
('alice','female','20180202','instructor','teach',7200,501,100),
('tianyun','male','20180202','hr','hrcc',600,502,101),
('harry','male','20180202','hr',NULL,6000,502,101),
('emma','female','20180206','sale','salecc',20000,503,102),
('christine','female','20180205','sale','salecc',2200,503,102),
('zhuzhu','male','20180205','sale',NULL,2200,503,102),
('gougou','male','20180205','sale','',2200,503,102);
mysql> use company
简单查询
select * from company.employee5;
使用表
use company;
语法:
select 字段名称,字段名称2 from 表名 条件
多字段查询:
只看id name sex
mysql> select id,name,sex from employee5;
只想看姓名
select name from employee5;
只想看Name为jack的
select name from employee5 where name='jack';
select * 查看jack所有的信息
select * from employee5 where name='jack';
有条件查询:where
mysql> select id,name from employee5 where id<=3;
mysql> select id,name,salary from employee5 where salary>2000;
设置别名:as
mysql> select id,name,salary as "salry_num" from employee5 where salary>5000;
给 salary 的值起个别名,显示值的表头会是设置的别名
统计记录数量:count()
mysql> select count(*) from employee5;
等同于下面这个命令 先把结果执行出来 在统计行数
select * from employee5;
统计字段得到数量:
mysql> select count(id) from employee5;
统计一下hr有多少人
mysql> select count(name) from employee5 where post='hr';
避免重复DISTINCT:表里面的数据有相同的
mysql> select distinct post from employee5;
#字段 表名