MySQL
1. 注释
2. 单行注释
-
--
:两个横线后面就是注释 -
在Navicat中,
ctrl+/
快速注释 -
在Navicat中按
ctr+shiftl+/
选中SQL代码取消注释
3.常用数据类型
-
整数: int,有符号范围(-2147483648 ,2147483647),无符号范围(0,4294967295),如: int unsigned,代表设置一个无符号的整数;
-
小整数: tinyint,有符号范围(-128,127),无符号范围(0,255),如: tinyintunsigned,,代表设置一个无符号的小整数
-
小数: decimal,如decimal(5,2)表示共存5位数,小数占2位,不能超过2位;整数占3位,不能超过三位;
-
字符串: varchar,如varchar(3)表示最多存3个字符,一个中文或一个字母都占一个字符;
-
日期时间: datetime,范围(1000-01-01 00:00:00~9999-12-31 23:59:59),如"2020-01-01 12:29:59'。
4.数据库中的元素
- 数据库-----database
- 表----table
- 字段(列)---field
- 记录(行)---record
5.创建表
- 语法:create table表名(字段名字段类型,字段名字段类型)
-- 例1:创建表a,字段要求;name(姓名),数据类型: varchar(字符串),长度为10
CREATE TABLE a (name varchar (10));
- 创建两个字段的表
-- 例2:创建表 b,字段要求: name(姓名),数据类型为varchar(字符串),长度为10;
-- height(身高),数据类型为 decimal(小数),一共5位,其中3位整数,2位小数。
CREATE TABLE b(
name varchar(10),
height DECIMAL(5,2)
);
- 创建三个字段的表
-- 例3:创建表c,字段要求如下:-- id:数据类型为int(整数)3
-- name姓名:数据类型为varchar (字符串)长度为20,
-- age 年龄:数据类型为tinyint unsigned《无符号小整数);
CREATE TABLE c(
id int,
name VARCHAR(20),
age TINYINT UNSIGNED
);
6.插入数据
- 语法: insert into表名values(值,值,值);
--往表c插入一条记录
INSERT into c VALUES (0,"张飞',30);
-
指定字段插入,语法:insert into表名(字段名,字段名) values(值,值);
--例2:表c 插入一条记录,只设置id 和姓名name INSERT into c (id,name) values (3,'曹操');
--例2:表c插入一条记录,只设置id和姓名ageINSERT into c (id,age) values (4,100);
7.插入多条记录
-
多条insert语句,用分号隔开
-- 例3:表c插入三条记录,写三条 insert语句,语句之间用分号隔开 INSERT into c values (5,"周瑜',50); INSERT into c (id,name) values (6,'鲁肃"); INSERT into c (name) values ('诸葛亮');
-
—条insert插入多条记录
-
语法:insert into表名values(值,值).(值,值).(值,值);
-- 例4:表c 插入多条记录,用一条 insert语句,数据之间用逗号隔开 insert into c values (10,"张三',10), (11,‘李四',20), (12,'王五',30);
8. select查询表
- 语法: select * from表名;
- 查询表的所有字段
-- 查询表c的所有字段
select from c;
- 指定字段名查询
- 语法:select字段名,字段名from表名;
-- 查询表c的id字段
select id from c;
-- 查询表c的id和age字段
select id,age from c;
-- 查询表c的所有字段,但顺序自定义
select name,id , age from c;
9.update修改数据
- 语法:update表名set字段=值,字段=值where条件
- 如果没有where条件代表修改表中所有的记录
-- 例1:修改表c,所有人的年龄(age字段)改为50
update c set age = 50;
- 带有条件的update语句
-- 例2:修改表 c,
-- id为3的记录,
-- 姓名(name字段)改为‘狄仁杰‘,年龄(age字段)改为20
update c set name ='狄仁杰',age = 20 where id = 3;
- 另外的例子
-修改name为刘备的记录为李白
update c set name = '李白’ where name = '刘备';
-- id大于10的记录,长一岁
update c set age = age + 1 where id > 10;
10. delete删除记录
- 语法:'delete from表名where条件'
-- 例1:删除表c中 id 为6的记录
DELETE from c where id = 6;
-- 例1:删除表c 中name为诸葛亮的记录
DELETE from c where name = '诸葛亮';
-- 删除年龄大于50的记录
DELETE from c where age > 50;
-- 删除id小于3的记录
delete from c where id < 3;
-- 删除所有记录
DELETE from c;
11.truncate table删除表的数据
- truncate table 表名
-- 删除表c中所有的记录
truncate table c;
12.小结
-
增
- insert
-
删
- delete
-
改
- update
-
查
- select
13.删除表
- 语法—: drop table表名
-- 删除表a
drop table a;
- 语法二: drop table if exists表名
--如果表a存在,就删除表a ,如果不存在,什么也不做DROP table if EXISTS a;
--如果表b存在,就删除表b,如果不存在,什么也不做DRoP table if EXISTS b;
字段的约束
一、常用约束介绍
- 主键(primary key):值不能重复,auto_increment代表值自动增长;
- 非空(not null):此字段不允许填写空值;
- 惟一(unique):此字段的值不允许重复;
- 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准。
二、创建带约束字段的语法格式
create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
...
);
三、主键与自增长
- 带有primary key(主键)的字段,值不能重复;
- auto_increment为自增长;
- 值会系统自动维护,自动增长
- 语法
create table 表名(
字段名 数据类型 primary key auto_increment,
字段名 数据类型 约束
...
);
-- 例1:创建表d,字段要求如下:
-- id:数据类型为
-- int unsigned(无符号整数) ,primary key(主键), auto_increment(自增长);
-- name姓名:数据类型为varchar (字符串)长度为10;
-- age年龄:数据类型为int(整数)﹔
create TABLE d (
id int UNSIGNED PRIMARY key auto_increment,name varchar (10),
age int);
INSERT into d (name,age) values ('张飞',30);
-- 插入的时候指定了id的值
INSERT into d (id,name,age) values (6,'曹操',30);
-- 不指定id的值
INSERT into d (rame,age) values ('周瑜',30);select * from d;
-- 如果不指定字段,主键自增长字段的值可以用占位符,0或者nu11
INSERT into d VALUES (0,'康熙',30);
INSERT into d VALUES (NuLL,'溥仪',50);
16. 非空
- 非空not null
- 这个字段必须有值,如果没有值,insert插入会失败
-- 例1:创建表e,字段要求如下:
-- id:数据类型为int unsigned(无符号整数)﹔
-- name 姓名:数据类型为varchar(字符串)长度为10, not nu11(非空),
-- age 年龄:数据类型为int(整数〉﹔
CREATE table e (
id int UNSIGNED,
name var char(10) not nu11,age int);
insert into e values (1,'张三',20);
insert into e (id,age) values (1,20);
-- name非空 错误
select * from e;
17.唯一
- 唯—unique
- 字段的约束为唯一,表示字段的值不能重复
-- 例1:创建表f,字段要求如下:
-- id:数据类型为int(整数)
-- name姓名:数据类型为varchar (字符串)长度为10,unique(唯一);
-- age年龄:数据类型为int(整数〉﹔
CREATE TABLE f (
id int,
name var char(10) UNIQUE,
age int);
insert into f VALUES (1,'张三',20);
insert into f VALUES (2,'李四',20);
select * from f;
18.默认值
- default值
- 当一个字段有默认值约束,插入数据时,如果指定了值,那么默认值无效,如果没有指定值,会使用默认值
-- 例1:创建表g,字段要求如下:
-- id:数据类型为int(整数);
-- name 姓名:数据类型为varchar (字符串)长度为10;
-- age年龄:数据类型为int(整数),default(默认值) 30;
CREATE TABLE g (
id int,
name varchar (10),
age int DEFAULT 30);
insert into g values ( 1,.'张三',20) ;
-- 插入的时候不指定age的值
insert into g (id, name) values (2,'李四');
select *from g;
标签:name,--,age,数据类型,MySQL,into,id
From: https://www.cnblogs.com/lzy5967/p/16652917.html