MySql数据库常用基础语法
sql语法基本规范:
- 不区分大小写
- 每句sql都要以 ;结尾
数据库中常用的数据类型:
int 数字的类型
varchar(50) 字符串 不定长 字节65535
char(20) 字符串 定长的字节 255个字节 常用于性别 男、女
data 日期 格式
创建数据库
-- create database 数据库名;
CREATE DATABASE school;
删除数据库
-- drop database 数据库名;
drop database school;
新建数据表
对应数据库内操作:
create table 表名(
字段名 字段类型 约束条件,
字段名 字段类型,
...
字段名 字段类型
);
约束条件: not null(不为空)、primark key(主键)、auto_increment(自增)、default(默认值)
– 设置了主键 主键不能为空,自增一定要是主键
例如:创建拥有id、name、age、gender这几个字段的学生表
CREATE TABLE student(
id int primary key auto_increment,
name varchar(20),
age INT,
gender char(20) DEFAULT('男')
);
数据库外操作:
create table 数据库名.表名(
字段名 字段类型,
字段名 字段类型,
...
字段名 字段类型
)charset=utf8;
如果创建数据库的时候数据库的编码格式没有选择utf-8,表内录入中文可能会显示乱码,创建表时可以加上charset=utf8
例如:创建拥有id、name、age、gender这几个字段的学生表
CREATE TABLE school.student(
id int primary key auto_increment,
name varchar(20)
age int,
gender char(20)
)charset=utf8;
插入数据
-表里的所有字段的对应数据都要添加进去
insert into 表名 values(字段数据,字段数据,...字段数据);
例如:添加学生信息到学生表
insert into school.student values(1,'张三',13,'男');
-只添加部分字段
insert into 表名(字段名,字段名,...字段名) values(字段数据,字段数据,...字段数据);
例如:添加学生信息到学生表
insert into school.student(name,age,sex) values('李四',14,'男');
-一次性添加多个数据
insert into 表名(字段名,字段名,...字段名) values(字段数据,字段数据,...字段数据),(字段数据,字段数据,...字段数据),...(字段数据,字段数据,...字段数据);
例如:添加多名学生信息到学生表
INSERT INTO school.student(name,age,sex) values
('胡蕊',14,'女'),
('史浩',14,'男'),
('于桑',14,'女');
查询语句
–查询表中的所有的数据
select * from 表名;
例如:查询学生表所有信息
SELECT * FROM school.student;
–查询表中的部分字段数据
select 字段名,字段名,...字段名 from 表名;
例如:查询学生表的id、name、age这几个字段的数据
select id,name,age from school.student;
–带条件查询
select * from 表名 where 条件;
–比较运算符 > = < >= <= != <>(表示不等于)
例如:查询学生表中的所有男生数据
select * from student where gender='男';
-and 和 同时满足多个条件
select * from 表名 where 条件 and 条件...and 条件;
例如:查询学生表中的所有年龄小于14的男生数据
select * from student where gender='男' and age<14;
–or 或者 满足其中一个条件
select * from 表名 where 条件 or 条件...or 条件;
例如:查询学生表中的所有年龄小于13或大于14的学生数据
select * from student where age<13 or age>14;
–not 非 条件不成立
select * from 表名 where not 条件;
例如:查询学生表中的所有年龄不小于15的学生数据
select * from student where not age<15;
–查询为空的数据 is null
select * from 表名 where 字段名 is null;
例如:查询学生表中的所有年龄字段为空的数据
select * from student where age is null;
– 排序 order by 字段名 asc/desc 默认是asc 升序,desc是降序
查询学生表所有数据按年龄升序排列
select * from student order by age;
查询学生表所有数据按年龄降序排列
select * from student order by age desc;
查询学生表,先按年龄升序排列,同样年龄的按id降序排列
select * from student order by age asc,id desc;
修改语句
–修改表内整个字段的所有内容
update 表名 set 字段名=修改的内容;
例如:将学生表中的年龄修改为13
update school.student set age=13;
–修改符合一种条件的内容
update 表名 set 字段名=修改的内容 where 条件(如:字段名=字段数据)
例如:将学生表中id=3的学生的年龄修改为14
update school.student set age=14 where id=3;
–修改符合多个条件的内容
例如:将学生表中id大于9的男生的年龄修改为14
update school.student set age=14 where gender='男' and id>9;
删除
DELETE 用于删除表内数据,可以在后面加WHERE条件
–删除表中的所有数据
delete from 表名;
例如:删除学生表内的所有数据
delete from school.student;
–删除表中符合条件的数据
delete from 表名 where 条件
例如:删除学生表中id为13的学生数据
delete from school.student where id=13;
DROP 直接删除表结构
–删除表结构
drop table 表名;
例如:删除学生表
drop table school.student;
TRUNCATE 用于删除表内数据,不能加WHERE条件
–删除表内数据
truncate table 表名;
例如:清除学生表内的所有数据
truncate table school.student;
三种删除方法中,DELETE执行速度最慢,DROP执行速度最快。