mysql 笔记
数据库
创建数据库
create database lambert;
使用数据库
use databases;
数据表
创建数据表
create table lambert(id int,name char(100),phonenumber int(50));
创建带有自增和主键的字段,Identity(1,1)是sqlserver
的用法
CREATE TABLE lantian (
id INT auto_increment primary key,
numberStu CHAR(40),
name CHAR(40),
sex CHAR(40),
classes CHAR(40),
grade FLOAT )
查看数据表
show tables;
查看数据表结构
describe lambert;
删除表格
drop table lambert;
插入数据
insert into lambert(id,username,age,mobilephone)values (1,"lantian",23,19832180706);
当只写value的时候是对每一列都插入数据。
修改字段数据类型
增加字段
alter table person add column id int(100);
删除字段
alter table person drop column id int(100);
修改字段
alter table person modify column id int(100);
where
查找数据
select * from lambert where id=1;
设置数据库使用的字符集
set names utf8;
一些重要的SQL命令
![image-20210205110601503](mysql.assets/image-20210205110601503.png)
查出表中不同的值,用于去重
select distinct name from systemInformation;
Sql中数值字段
不能使用引号
select * from systemInformation where id=1;
Where子句中的运算符
![image-20210205112234479](mysql.assets/image-20210205112234479.png)
and 用于同时满足两种情况。
or 用于满足其中一种条件。
not 用于满足不包含该条件的值。
逻辑运算的优先级:
() not and or
空值判断is null
Select * from emp where comm is null;
between and (在 之间的值)
Select * from emp where sal between 1500 and 3000;
In 等于以下任意一值
Select * from emp where sal in (5000,3000,1500);
like 模糊查询
Select * from emp where ename like 'M%';
- % 表示多个字值,_ 下划线表示一个字符;
- M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
- %M% : 表示查询包含M的所有内容。
- %M_ : 表示查询以M在倒数第二位的所有内容。
CONCAT LIKE 结果集
Order by 对结果集进行升序排序,加 desc 后为降序排序
select * from systemInformation order by id desc;
多列排序
SELECT * FROM Websites ORDER BY country,alexa;
当进行多列排序时,是先对country 排序,再对alexa 排序。
ORDER BY 多列的时候,eg:
order by A,B 这个时候都是默认按升序排列
order by A desc,B 这个时候 A 降序,B 升序排列
order by A ,B desc 这个时候 A 升序,B 降序排列
即 desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。
Update 修改数据表
执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。
在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。
set sql_safe_updates=1; 表示开启该参数
UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鸟教程';
Delete 用于删除表中某行数据
DELETE FROM table_name WHERE some_column=some_value;
删除表中所有数据
DELETE FROM table_name;
或
DELETE * FROM table_name;
mysql主键外键的作用
-
主键的作用
主键是能确定一条记录的唯一标识,主键字段必须唯一,必须非空,一个表中只能有一个主键,主键可以包含一个或多个字段。打个比方,一条记录包括身份正号,姓名,年龄,学校,国籍,性别等。身份证号是唯一能确定你这个人的,其他都可能有重 复,所以,身份证号是主键。
-
外键的作用
外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。外键用于与另一张表的关联。是能确定另一张表记录的字段,保持数据的一致性、完整性。
按照多个查询条件进行查询
![images](mysql.assets/image-20210310152820123.png)
动态sql
多表多字段查询
select a.name,b.member from power a inner join systemInformation b on a.id=b.id;
sql语句
表和列的别名
select name 姓名, member 会员 from power p;
// 用 concat(column) as newColumn 合并列并重命名
select id,concat(name,',',power,',',powerGroupId) as detail from power;
关联映射
分步查询信息
写两个方法
springboot配置数据库
- 配置数据源
application.yml
有什么不同见解可以在评论区共同讨论