数据库的定义操作

登录Mysql命令

mysql (-h 数据库地址) -u 用户名 -p 密码
如:mysql -u root -p

退出Mysql命令

quit

注:在mysql中书写sql语句必须要带结束符";"

显示当前Mysql中的全部数据库

show databases;

创建数据库

create database [if not exists] 数据库的名字
create database user1;

注:if not exists,是否覆盖创建,如果不省略则覆盖创建。

删除数据库

drop database [if exists] 数据库的名字
drop database user1;

注:if exists,不管数据库是否存在,都执行成功。

查询当前操作的数据库

select database();

切换使用数据库

use 数据库名字;
 use user;

表格的定义操作

创建表格

create table [IF NOT EXISTS] 表名(
    列名 普通约束 描述,
    主键约束,
    外键约束,
);

关键词

auto_increment——自动增加,不能定义表级约束
not null——非空,不能定义表级约束
default——默认值,不能定义表级约束
unique——唯一。
check——限制列的取值范围,使用方式CHECK(条件)
primary key——主键,即非空唯一。
foreign key——外键,使用方式,[FOREIGN KEY] [列名] REFERENCES 外表名 外表列名 [删除修改是否联动]
COMMENT 描述的关键词
CURRENT_TIMESTAMP 自动生成数据库时间

查看当前数据库的表

show tables;

查看表结构命令

desc 表名;

修改表结构

alter table 表名 change 原列名 新列名 数据类型 [完整性约束];//change可以修改列别,数据类型和约束

alter table 表名 modify [column] 列名 数据类型;//modify只能修改数据类型
alter table text modify id varchar(100);
alter table text change id uid varchar(255) not null;

添加表结构

alter table 表名 add [column] 列名 数据类型 not NULL default '123456' ;
alter table text add username varchar(100) unique default "admin";
alter table text add primary key(uid);

删除表结构

alter table 表名 drop [column] 列名;
alter table text drop username;

删除表

drop table [IF EXISTS] 表1 [,表2,表3];
drop table text,users;

表中数据的操作

向表格中插入数据

完全插入的写法
insert [into] 表名 values(要写全部的字段值);
insert users values(UUID(),"admin","123123","任","/a/b/c/img.jpg",true,"123456",10.00,CURRENT_TIMESTAMP);

注:UUID(),默认随机生成Hash值,不重复唯一

部分插入的写法
insert [into] 表名(需要插入的字段名) values(对应需要字段的值);
insert users(uid,username,realname) values(UUID(),"admin123","哈哈");

mysql 语法中支持多条插入

insert users(uid,username,realname) values
(UUID(),"admin1234","哈哈1"),
(UUID(),"admin12345","哈哈2"),
(UUID(),"admin123456","哈哈3"),
(UUID(),"admin1234567","哈哈4"),
(UUID(),"admin12345678","哈哈5");

为表格中修改数据

update 表名 set 修改内容 [判断条件]

如果不加判断条件则修改整张表的该列

update users set pwd="123456";

删除表格数据

delete from 表名 [判断条件]

如果不添加任何判断条,会删除整张表的数据

delete from users;

查询表格数据

查询全部数据

select 字段的名字 from 表名
select * from users;
  • 全部列名

条件查询

select 字段的名字 from 表名 where 条件;
select goods_name,goods_introduce from goodlist where first_id="53e74a96-db00-11ea-8db0-d43a6508d4a8";
 select goods_name,goods_introduce from goodlist where first_id="53e74a96-db00-11ea-8db0-d43a6508d4a8" and goods_name="ANNY意式浓缩拼配咖啡豆2*227g";//and 关键词相当于且
 select goods_name,goods_introduce from goodlist where first_id="53e74a96-db00-11ea-8db0-d43a6508d4a8" or second_id="94711f15-db98-11ea-be68-d43a6508d4a8";//or 关键词相当于 或

 select goods_name,goods_introduce from goodlist where goods_name like "%小%" ;//like关键词如果 部分%一起使用,相当于=,如果需要完成模糊搜索操作需要在搜索字符的前后都加上%

分组查询数据

select 字段的名字 from 表名 group by 分组字段 having 判断条件;

注:如果需要判断条件则在select后面的字段名字中加入该判断条件字段

select goods_name,goods_introduce,goods_price from goodlist group by thired_id having goods_price>100;

排序查询数据

select 字段名 from 表名 order by 需要排序的字段名 DESC/ASC

注:DESC降序,ASC升序

select * from users order by uid DESC;

查询数据去重

select distinct 需要去重的字段名 from 表名;
SELECT DISTINCT pwd from users;

条件查询的运算符操作BETWEEN…and

select 字段名 from 表名 where 字段名 BETWEEN 值 and 值
select * from sc where grade BETWEEN 85 and 93;

“>”,"<",">=","<=","!="

select * from sc where  grade>=85 and grade<=93;

limit 关键词

select 字段名 from 表名 limit 查询个数;
select * from sc LIMIT 3;

注:接一个参数时表示查询个数

select 字段名 from 表名 limit 查询数据的起始下标,查询个数;

注:下标是从0开始的。

select * from sc LIMIT 3,2;

聚合函数实例

SELECT SUM(grade) AS '总成绩' from sc
SELECT AVG(grade) AS '平均成绩' from scSELECT MAX(grade) AS '最高成绩' from sc
SELECT MIN(grade) AS '最低成绩' from sc
SELECT COUNT(*) AS '当前表格数据个数' from sc
SELECT CONCAT(cno,sno) AS '合并列操作' from sc

修改数据库密码在cmd操作

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;