mysql基础的常用sql语句

mysql基础的常用sql语句

一、msql启动

说明:①反引号(` )用于表和列标识符
一定要注意,当表名为关键字时,一定要添加反引号!!!

​ ②单引号(’ ')应该用于VALUES()列表中的字符串值

1、在管理员的命令行下

	启动:net start mysql80(mysql服务器的名称)
	停止:net stop mysql80
	登录:①mysql -u root -p密码
	          ②mysql -u root -p回车
		输入密码(可以隐藏密码,避免暴露)

2、mysql的常用命令

①创建表:
create table manualcre (
/* 使用[--]或[/* ...*/]加注释 */
/* 在写数据的类型时,一定要添加取值范围如:varchar(32) */
		id int(32) primary key auto_increment,
		name varchar(32),
		password varchar(32)
		);

​ 创建库:

/*创建库:mydatabase;设置字符集一般为utf-8
create database mydatabase character set utf-8;

​ 删除库:

drop database <数据库名>;
②在表中添数据
	1.语法:
	单条:
	INSERT INTO `表名` (字段1,字段2,...字段n) 		
	VALUES 
	(1,2,...值n);
	多条:
	insert into `表名`(字段1,字段2,字段3,......) 				
	values 
      ('值1''值2''值3'.....), 
      ('值1''值2''值3'.....), 
      ('值1''值2''值3'.....);
	3.示例:
	①INSERT INTO
		`student` (name,sex)
	VALUES
		('suyanzhu',1);
	②mysql> insert into mytest(name,id) 		
			values
			('小白',2),
			('小黑',3),
			('小红',4);

③修改表中的一条记录:
	UPDATE customers
	SET name = 'xiaoming',birth = '1996-07-20' 
	WHERE id =5;
④删除库中的表:
1drop table 表名;2drop table if exists 表名;
⑤删除一条记录
DELETE FROM customers WHERE id = 5;
⑥查询表的记录

①查询一天记录;

SELECT * FROM customers;
//给字段起别名
select order_id(旧名) orderId(别名),order_name orderName from `order`

②分组统计查询

①方式一
SELECT ebicycleNo,COUNT(ebicycleNo) sumCharge(别名),SUM(fee) sumFee(别名) 
FROM record 
WHERE startTime >="2020-06-02 08:00:00" AND endTime <="2020-06-03 12:00:00" (不能使用聚集函数的条件语句)
GROUP by ebicycleNo (按ebicycleNo分组查询)
HAVING COUNT(ebicycleNo) >=0 (使用聚集函数的条件语句)
ORDER BY ebicycleNo DESCASC 代表升序,DESC降序)
②方式二:去重复查询
	1)使用DISTINCT命令,
	SELECT DISTINCT ebicycleNo FROM record;
	2)GROUP BY分组查询也可以达到去重复的效果
	SELECT ebicycleNo FROM record GROUP BY ebicycleNO;

聚集函数补充知识!!!

COUNT(*) 统计元组的个数!!!
COUNT(DISTINCT name) 重复的name,按一个来计算,统计;
SUM(*) 计算一列的总和(数值型)(例如:2.3+4.2+3.6 = 10.1SUM(DISTINCT name) 重复的按一个来相加总和;
AVG(scores) 计算scores的平均值,如去重复加DISTINCT
MAX(列名) 求该列的最大值,如去重复加DISTINCT
MIN(列名) 求该列的最小值,如去重复加DISTINCT
补充命令:
DISTINCT 列名; 去调重复的,按一个计算;
WHERE name LIKE %a' AND address LIKE '%b%';模糊查询命令
GROUP BY 列名 ;按该列名进行分组统计查询;
HAVING BY AVG(列名) > 0;再该列平均值的情况下,查询
ORDER BY 列名 DESC;(按照该列名排序,ASC 代表升序,DESC降序)
说明:①DISTINCT name该命令为去重复,相同的按一个来处理;
	 ②注意WHERE的条件判断,不能使用聚集函数,但HAVING 可以使用;(查询语句内,仅仅该WHERE命令后的判断条件不能使用聚集函数,后接HAVING命令的还是可用聚集函数来实现自己想要的效果的)
	 ③所有的查询命令都能自由组合使用!!!(除了特殊情况)

③模糊查询

例子:查询以a结尾的name,或者包含b的address,所有记录
SELECT id,name,address 
FROM customers
WHERE name LIKE %a' AND address LIKE '%b%';

SELECT 字段名,字段名 FROM 表名 WHERE 字段名 LIKE 'a%' AND 字段名 '%b' ? AND 字段名 '%c%';
说明:查询相应的字段包含以a开头的,或者以b结尾的,或者包含c的,所有的记录,只要符合其中一个条件即可;(模糊查询);'%'代表通配符;
⑦查看数据库:
show databases;
use test;使用test库,创建表	
show tables;查看所有表	
⑧查看数据表:show tables;
⑨查看表结构:describe 表名;
⑩添加表列
//alter table 表名 add 字段 字符格式 约束
 alter table user add unifo varchar(32) not null;
11修改表列
alter table 表名 modify 列名 字符格式 约束
12修改表名
alter table 表名  change 旧列名 新列名 新字符格式 新约束
13重命名
rename table 旧表名 to 新表名
14添加约束
alter table 表名 add constraint name uk unique(约束的字段名);
例子:customer变得name独一无二,不能重复
alter table customer add constraint name uk unique(name);
15修改的列名

(准确的是,再原有列名的基础上,添加一个自己需求的别名)

SELECT ebicycleNo,COUNT(ebicycleNo) sumCharge(别名),SUM(fee) sumFee(别名) (在原有列名的后面直接加别名)
FROM record 
WHERE startTime >="2020-06-02 08:00:00" AND endTime <="2020-06-03 12:00:00" (不能使用聚集函数的条件语句)
GROUP by ebicycleNo (按ebicycleNo分组查询)
HAVING COUNT(ebicycleNo) >=0 (使用聚集函数的条件语句)
ORDER BY ebicycleNo DESCASC 代表升序,DESC降序)
16 两张表的连接

​ ①内连接

select * from student s(别名) 
inner(可以省略) join grade g (别名)
on(连接条件) s.id = g.id;
例子:
select * from student s join grade g on s.id = g.id;

②左连接

select * from student s 
left join grade g 
on s.id = g.id;

③右连接

select * from student s 
right join grade g 
on s.id = g.id;
17 模糊查询语句
例一,在 student 表中,查找所有以字母“T”开头的学生姓名,SQL 语句和运行结果如下。
mysql> SELECT name FROM student 
    -> WHERE name LIKE 'T%';
例二,在 student  表中,查找所有不以字母“T”开头的学生姓名,SQL 语句和运行结果如下。
mysql> SELECT NAME FROM student 
    -> WHERE NAME NOT LIKE 'T%';
18 分页查询
关键字:limit m,n;m为从那一页开始,n为每一页有多少条数据
select * from student order by studentid desc limit 3,3;

3、在mysql中设置隔离级别

①查看当前的隔离级别:SELECT @@tx_isolation;
②设置当前mysql连接的隔离级别:
	set  transaction isolation level read committed;
③设置数据库系统的全局的隔离级别:
    set global transaction isolation level read committed;

​ ④补充操作:

  • 创建mysql数据库用户:

    create user tom identified by 'abc123';
    
    
  • 授予权限

 #授予通过网络方式登录的tom用户,对所有库所有表的全部权限,密码设为abc123.
  grant all privileges on *.* to tom@'%'  identified by 'abc123'; 
   #给tom用户使用本地命令行方式,授予atguigudb这个库下的所有表的插删改查的权限。
  grant select,insert,delete,update on atguigudb.* to tom@localhost identified by 'abc123'; 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值