MYSQL语言的基础
注释
多行注释
格式 /*注释内容*/
/* 这里是
多行注释*/
单行注释
-- 这里是单行注释
MYSQL常用的数据类型
整数:int 有符号范围(-214743648,2147483647),无符号范围(0,4294967295)如:int unsigned,代表设置一个无符号的整数
小整数:tinyint,有符号范围(-128,127),无符号范围(0,255),如:tinyint unsigned,代表设置一个无符号的小整数
小数:decimal,如decimal(5.2)表示共存5位数,小数占2位,不能超过2位,整数占3位,不能超过3位
字符串:varchar,如varchar(3)表示最多存3个字符,一个中文或一个字母都占一个字符
日期时间:detetime,范围(1000-01-01 00:00:00 ~ 9999-12-31 23:59:59),如('2020-01-01 12:30:59')
数据库中的元素
数据库(database)
表的集合,一个数据库能有多个表
表(table)
数据库中存储数据的基本单位,表是一个有行和列组成的二维表格结构
字段(field)(列)
表中的列,在数据库中,叫做字段
记录(record)(行)
表中的一行,在数据库中,叫做记录
数据库的操作
创建数据库
CREATE DATABASE 数据库名
创建一个test数据库并定义字符集为utf-8
CREATE DATABASE test charset utf8
创建表
CREATE TABLE 表名称(字段名 字段类型,
字段名 字段类型,
字段名 字段类型);
创建表a,字段为name,数据类型:字符串,字段长度:10
CREATE TABLE a (name varchar(10));
创建表b,字段要求:name(姓名),数据类型为varchar(字符串),长度为10;hight(身高),数据类型decimal(小数),一共5位,其中3位整数,2位小数
CREATE TABLE b (name varchar(10)
height decimal(5,2)
);
创建表c,字段要求:id(编号) 数据类型:int(整数), name(姓名)数据类型:varchar(字符串)长度为20,age (年龄)数据类型tinyint unsigned(无符号小整数)
CREATE TABLE c (
id int,
name varchar(20),
age tinyint unsigned
);
插入记录
INSERT INTO 表名 values (值1,值2…);
插入一条数据
INSERT INTO c (1,张飞,18);
插入指定部分字段的值
INSERT INTO 表名(列名1,列名2)… values (值1,值2…)
给c表id,name字段插入一条数据
INSERT INTO c id (id,name) values (2,刘备);
给c表id,name字段插入多条数据
INSERT INTO c id (id,name,age) values
(11,'张三',20),
(12,'李四',21),
(13,'王武',28);
查询语句
select * from 表名 ;
查询c表所有字段
select * form c;
指定字段名查询
select 字段名,字段名 form 表名;
查询c表的id字段
select id from c;
查询c表的id和age字段
select id,age from c;
修改数据
update 表名 set 字段 1=值,字段2=值 where 条件;(如果没有条件代表修改表所有的记录)
修改表c,所有人的年龄(age字段)改为50
update c set age = 50;
修改表c,id为2的记录,年龄修改成50,姓名改为关羽
update c set age=50,name=‘关羽’ where id=3;
修改表c,id大于10的,增长1岁
update c set age = age + 1 where id > 10;
删除数据
delete * from 表名 where 条件;
删除表c中id为6的记录
delete * from c where id = 6;
删除表c中年龄大于50的记录
delete * from c where age > 50;
删除表中所有数据
truncate table c;
删除表
DORP table 表名
删除表c
drop table c;
Dorp table if exists 表名 (如果表存在就删除,如果表不存在也不报错)
删除表a
drop table a if exists a;
字段的约束
主键(primary key):值不能重复,auto_increment代表自增长
非空(not null):此字段不允许填写空值
唯一(unique):此字段的值不允许重复
默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准
create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
.....
);
主键与自增长
创建表d,字段要求:id 数据类型为int unsigned(无符号整数),primary key(主键),auto_increment(自增长);
name 数据类型为varchar(字符串)长度为10;
age 数据类型为int(整数)
CREATE TABLE d (
id int unsigned primarykey key auto_increment,
name varchar(10),
age int);
INSERT INTO d (name,age) varlues ('张三',22); 当id为自增长约束,插入的id字段不用指定值,当数据插入时,id会按顺序自动填充
INSERT INTO d (id,name,age) varlues (7,'李四',22); 当id为自增长约束,插入的id字段指定值,当下次不指定插入时,id会按最后插入的最大值继续顺序填充
如果不指定字段,主键自增长的值可以用占位符,null,0都为占位符
insert into d values (0,'王五',30);
insert into d values (null,'赵六',33);
非空 not null
这个字段必须有值,如果没有值,插入数据的时候会报错
创建表e id 为无符号整数,
name字段 字符串类型 长度10 约束非空
age 为整数
CREATE TABLE e(
id int unsigned,
name varchar (10) not null,
age int);
唯一 unique
字段的约束为唯一,表示字段的值不能重复
创建表f,字段要求 id 数据类型为int ;name 数据类型为varchar 约束为唯一unique 长度为10;age 数据类型为int
CREATE TABLE f(
id int,
name varchar(10) unique,
age int);
默认值 default
当一个字段有默认值约束,插入数据时,如果指定了值,那么默认值无效,如果没有指定值,会使用默认值
创建表x,字段要求 id 数据类型为int ;name 数据类型为varchar 约束为唯一 长度为10;age 数据类型为int 约束为默认default
CREATE TABLE x(
id int,
name varchar(10) unique,
age int default 30);