mysql的库增删查、表的增删改查、内外链接、多表查询 待更新。。。

数据库的增删查

  • 创建数据库
create database 数据库名;
  • 查看已有的数据库
//记住加  s
show databases
  • 删除数据库
drop database 数据库名;
  • 控制台连接数据库
    输入 mysql -u root -p 命令,回车,然后输入 MySQL 的密码(不要忘记了密码),再回车,就连接上 MySQL 了。
mysql -u root -p

数据库表的增删改查

下面会用到一些数据库词语,一下是博主的一些解释

类型总结

int 默认长度(11)
char 需要自己设置长度
varchar 需要自己设置长度

长度区别

int类型带长度:不影响存取值,即使设定的值超出了长度的范畴,也能存,如果没有达到设定的长度,则使用空格自动填充到设定的长度
char类型:不可变字符,设定的长度就是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,自动使用空格填充到设定的长度
varchar类型:可变字符,设定的长度同样是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,不会使用空格填充,实际多长就是多长

约束总结

1、PRIMARY KEY 主键约束,具有唯一性,不为空的属性。(注意:一般只有ID才设置主键,一个表中只有一个主键,如果一个表中多个字段有主键约束,那么这多个字段加在一起算一个主键,也是说,他们共同作为这个表的主键)
2、FOREIGN KEY 外键约束,
语法规则
CONSTRIANT 外键名称 FOREIGN KEY (本表中的字段列表) REFERENCE 与本表联系的表名(主键);
###外键删除
ALTER TABLE 外键所在表名 DROP FOREIGN KEY 外键名称;
###外键添加
ALTER TABLE 外键所在表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (字段列表) REFERENCES 与本表联系的表名(主键);
3、NOT NULL 非空约束,设置了非空约束 NOT NULL 后,那个值得的属性就不能为空,一定要填写
4、UNIQUE 唯一约束 ,要求该列唯一,不能重复,允许为空,但只能出现一个空值
5、AUTO_INCREMENT 自动增长, 当 id 设置了自动增加约束 后,id的数字顺序就会自动的增加,不会出现重复效果。
6、DEFAULT 默认约束,使用默认约束 比如:DEFAULT ‘男’ ;DEFAULT NULL等,该值的属性会根据默认的属性所执行。
INSERT INTO td_students04(st_name,st_deptid) VALUES(‘张一’,1);

  1. 创建表
create table 表名(
    列名1 类型(长度) [约束],
    列名2 类型(长度) [约束],
    ……
); 
  1. 删除表
DROP TABLE 表名;
  1. 查询数据库的表及列信息
  • 已在数据库中,则
show tables//查询该数据库的表
  • 查某数据库的表及信息
SELECT
TABLE_NAME,//表名
COLUMN_NAME,//列名
DATA_TYPE,//数据类型
COLUMN_COMMENT
FROM
INFORMATION_SCHEMA. COLUMNS
WHERE
TABLE_SCHEMA = '数据库名'
  1. 修改表结构
  • 修改表名字
alter table 原名字 rename as 新名字;
  • 添加表字段:
    注意:一般添加字段默认添加到表的末尾,如果我们要指定添加的为位置。
    MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。
alter table 表名 add 字段名 类型  AFTER 字段名
  • 修改表字段
//修改字段 类型
alter table 表名 modify 字段名 类型 ;
//例如:alter table user  modify colum id int(20)

//修改 字段名
alter table 表名 change 原字段名 新字段名 类型;

  • 删除表字段
    注意,当表只有一个字段时,drop无法删除
alter table 表名 drop 字段名;
  1. 查看表结构
desc 表名;

表中数据的增删改查

条件总结:
where 运算符 值
运算符有=、<=、!=、>=、<、>、<>、like、between and 、and等

like:where 字段名 like ‘%F%’ //当值中有F时
and: where TitleOfCourtesy=‘Mr’ and LastName=‘Buchanan’ //前后两个条件需要全部成立
between: where EmployeeID between 1 and 9 //在字段EmployeeID1到9之间的数据(包含1和9)

特殊:
ORDER BY(根据 相应的列来进行排序 )默认升序(asc),同样的可以设置降序(desc)
SELECT * from st2 ORDER BY id DESC

  INSERT INTO 表的名称 values(1,值2,值3...)
或者可以指定特定的列来进行插入数据操作
   INSERT INTO table_name (1,列2......) VALUES (值1,值2.....INSERT INTO table_name (1,列2......) VALUES (值1,值2.....,(3,值4)(5,值6)
DELETE  FROM 表的名称 WHERE 条件
update  表的名称 set  列名1=新值  列名2=新值 where 列名称=某值
//查询该表所有字段
select * from 表名 where 条件
//查询该表一些字段
select 字段1,字段2 from 表名 where 条件
外连接

外连接一般分为左外连接和右外链接

1、左外连接:如果联合查询,左侧的表完全显示我们就说是左外连接。

语法:select 字段名 from 表一 left join 表二 on 连接条件;

举例:

准备工作:先建两张表

create table student (id int,name varchar(32));  --学生表
insert into student values(1,'Jack'),(2,'Lucy'),(6,'Lily');
create table exam(id int,grade int);  --成绩表
insert into exam values(1,100),(2,89),(3,66),(4,90);

查询所有学生的成绩,左外连结果就是:即使学生没有成绩,也要将学生个人信息显示出来,所以为空

//查询
select * from st1 left join exam on st1.id=exam.id;

结果
在这里插入图片描述

2、右外链接:如果联合查询,右侧的表完全显示我们就说是右外连接。

语法:select 字段名 from 表一 right join 表二 on 连接条件;
举例:如上,查询学生所有成绩

右外连结果:即使存在成绩并没有学生与之对应,也会将成绩显示出来,所以为空

//查询
select * from st1 RIGHT JOIN exam on st1.id=exam.id;

结果
在这里插入图片描述

内链接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询

  • 语法:没有条件可以不写条件
//如果需要查询所有的字段,字段那里可以写成   *
select 字段 from 表一 inner join 表二 on 连接条件 and 其他条件 where 条件;
//如果需要还需要连接其他的表,可以这样写,
//但是第一个表要和第二表有约束(联系、外键),表二要和表三有约束
select 字段 from 表一 inner join 表二 on 连接条件 inner join 
表三 on 连接条件 and 其他条件 where 条件;
#### 多表查询。。。
待更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值