类型 | 解释 | 举例 |
---|---|---|
int | 整型 | 用户定义整数类型的数据(1、2、3、4、5…) |
fliat | 单精度浮点(4字节32位) | 准确表示小数点后6位 |
double | 双精度浮点(8字节64位) | 小数位更多,更精确 |
char | 固定长度的字符类型 | 定义字符长度(存的少,会补空格,存的多被截取,高版本报错) |
varchar | 可变长度的字符类型 | 定义字符最大长度(存的少,总长度变小,存的大于最大,报错) |
text | 文本 | |
image | 图片 | |
decimal(5,2) | 总共5个有效长度数字,小数点后面有两位 |
char和varchar的区别
截取和截断的区别
截取会对后一位进行四舍五入,截断直接获取要的数字,不进行四舍五入
SQL语言分类
mysql -uroot -pngs123 #直接登录数据库,用-P输入密码,这样不安全
mysql -uroot -p #登录数据库,不输入密码,回车之后再输入
show databases; #查看有多少数据库
use mysql; #进入一个数据库中
show tables; #查看该数据库中有多少个表
describe db; #查看db表的结构(可缩写位desc db;)
DDL语句可用于创建数据库对象(库、表、索引)
删除数据库和表
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
create database nba; #创建一个名为nba的数据库
create table star (id int(10) not null,name int(3) not null,time decimal(4,2),score decimal(3,1),backboard decimal(3,1),secondary decimal(3,1),address varchar(20) default '0',primary key (id)); #创建一张名为star的表,(定义id不为空,名字不为空,默认值为0,主键为id)
create table nba.star (id int(10)) #在任意库中创建nba库中的star表
创建一个名为nba的数据库,并查看数据库
进入创建的数据库中,查看数据库中的表,为空
在数据库中创建名为star的表
use 数据库名
drop table 表名;
drop table [数据库名].表名;
删除数据库
删除表
INSERT INTO 表名(字段1,字段2[,...]) VALUES(字段1的值,字段2的值,...);
在nba1库中创建star这张表,要求字段为:id,name,time,score,backboard,secondary,address
要求:id为主键,除了address之外其他字段不能为空,address可以为空,且默认为los Angeles
create database nba1; #创建库
create table star (id int(3) not null primary key,name varchar(40) not null,time decimal(3,1) not null,score decimal(3,1) not null,backboard decimal(3,1) not null,secondary decimal(3,1) not null,address varchar(30) default 'los Angeles');
#创建表
insert into star values(24,'kobe',41.2,32.6,9.8,4.5,'los Angeles'); #插入数据
select * from star; #查看
update 表名 set 字段1=字段值1,字段2=字段值10 where 表达式;
update star set time=40.5,secondary=3.8 where name='ONeal';
#把name为ONeal的行中,time改为40.5,secondary改为3.8
update star set backboard=13.5 where id>30;
#将id大于30的,backboard改为13.5
格式:delete from 表名 where 条件表达式;
delete from star where name='yeyan'
格式:select 字段1,字段2 from 表名 【where 条件表达式】;
aliter:修改表名称或表结构
格式:alter table 旧表名 rename 新表名;
alter table 表名 add age int(3) default 'unknow';
alter table 表名 change 旧列名 新列明 数据类型 {unique key}
unique key:唯一键(特性,唯一,但可以为空,空值只允许出现一次)
primary key :主键(唯一且非空)
alter table 表名 drop 字段名;
create table if not exists info (id int(4) zerofill primary key auto_increment,name varchar(10) not null,cardid int(18) not null unique key,hobby varchar(50));
if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建。
int(4) zerofill:表若数值不满4位数,则前面用“0”填充,例0001。
auto_increment: 表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可重复,自增长字段必须是主键,如添加的距离数据没有指定字段的值且添加失败也会自动递增一次。
unique_key : 表示此字段唯一约束,此字段数据不可以重复,一张表中只能有一个主键,但是一张表中可以有多个唯一键。
not null : 表示此字段不允许为NULL。
SQL语言的分类
DDL:数据定义语言,用于创建和删除数据库表等操作
create (创建)、drop(删除)
DML:数据操纵语言,用于管理表中的记录,对数据进行增、删、改的操作
insert(插入)其中有into(插入)、selete(删除)、update(改)其中为set(修改)
DQL:数据查询语言,主要用来查询数据库中的记录
select(查看)
DCL:数据控制语言,用来针对字段属性的增、删、改增操作
alter(修改字段),其中有add(添加)、change(修改)、drop(删除)