MySQL学习01

1. 常用的数据类型

常用数据类型
整数int
小整数tinyint
小数decimal
字符串varchar
日期时间datetime

2. 数据库中的元素 

  • 数据库(database)
  • 表(table)
  • 字段(field)-- 列
  • 记录(record)-- 行

3. 建表

-- 例 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 (整数); 
-- name 姓名:数据类型为 varchar(字符串)长度为 20, 
-- age 年龄:数据类型为 tinyint unsigned(无符号小整数);
CREATE TABLE c(
	id int,
	name VARCHAR(20),
	age TINYINT UNSIGNED
);

 4. 插入数据

-- 往表c插入一条记录
INSERT into c VALUES (0, '张飞', 30);

-- 例 2:表 c 插入一条记录,只设置 id 和姓名 name
INSERT into c (id, name) values (3, '曹操');

-- 例 2:表 c 插入一条记录,只设置 id 和姓名 age
INSERT into c (id, age) values (4, 100);

5. 插入多条记录

-- 例 3:表 c 插入三条记录,写三条 insert 语句, 语句之间用分号隔开
INSERT into c values (5, '周瑜', 50);
insert into c (id, name) values (6, '鲁肃');
INSERT into c (name) values ('诸葛亮');

-- 例 4:表 c 插入多条记录,用一条 insert 语句, 数据之间用逗号隔开
insert into c values (10, '张三', 10),
(11, '李四', 20),
(12, '王五', 30);

-- 例 4:表 c 插入多条记录,用一条 insert 语句, 数据之间用逗号隔开
insert into c (id, name) values (13, '光绪'),
(14, '康熙'),
(15, '雍正');

6. select查询 

-- 查询表c的所有字段
select * from c;

-- 查询表c的id字段
select id from c;
-- 查询表c的id和age字段
select id, age from c;
-- 查询表c的所有字段,但顺序自定义
select name, id, age from c;

-- 例 1:修改表 c,所有人的年龄(age 字段)改为 50
update c set age = 50;

-- 例 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;

7. delete删除记录

-- 例 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;

8. truncate table删除表的数据

-- 删除表c中所有的记录
truncate table c;

delete和truncate的区别:

  • 速度上:truncate > delete;
  • 输出部分数据时用delete配合where子句;
  • 如果想保留表而将所有数据删除,自增长字段恢复从1开始,使用truncate。

9. 表的删除

-- 删除表a
drop table a;

-- 如果表a存在,就删除表a,如果不存在,什么也不做
DROP table if EXISTS a;

-- 如果表b存在,就删除表b,如果不存在,什么也不做
DROP table if EXISTS b;

10. 字段约束

10.1 常用约束介绍 

  1. 主键(primary key):值不能重复,auto_increment代表值自动增长;
  2. 非空(not null):此字段不允许填写空值;
  3. 惟一(unique):此字段的值不允许重复;
  4. 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准。 

10.2 创建带约束字段的语法格式

create table 表名(
    字段名 数据类型 约束,
    字段名 数据类型 约束,
    ......
);

10.3 主键

-- 例 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 (name, age) values ('周瑜', 30);
select * from d;

-- 如果不指定字段,主键自增长字段的值可以用占位符,0或者null
INSERT into d VALUES (0, '康熙', 30);
INSERT into d VALUES (NULL, '溥仪', 50);

10.4 非空

-- 例 1:创建表 e,字段要求如下: 
-- id:数据类型为 int unsigned (无符号整数);
--  name 姓名:数据类型为 varchar(字符串)长度为 10,not null(非空), 
-- age 年龄:数据类型为 int(整数);

CREATE table e (
id int UNSIGNED,
name varchar(10) not null,
age int);

insert into e values (1, '张三', 20);
insert into e (id, age) values (1, 20);
select * from e;

10.5 惟一

-- 例 1:创建表 f,字段要求如下: 
-- id:数据类型为 int (整数); 
-- name 姓名:数据类型为 varchar(字符串)长度为 10,unique(唯一); 
-- age 年龄:数据类型为 int(整数);
CREATE TABLE f (
id int,
name varchar(10) UNIQUE,
age int);

insert into f VALUES (1, '张三', 20);
insert into f VALUES (2, '李四', 20);
select * from f;

10.6 默认值

-- 例 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;

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值