1、基礎語法
mysql -h【主機名】 -u【用戶名】 -p ????????//登錄MySQL
exit或quit; ???????//退出MySQL
show database;??? ???//查看MySQL下的所有數據庫
use 【數據庫名】;?? ????//進入數據庫
show tables; ???????//查看數據庫下的所有表名
*MySQL的啟動和關閉
(1)Windows系統
NET START MYSQL80??? net start mysql80?????? //mysql80是MySQL服務的名字
NET STOP MYSQL80???? net stop mysql80
(2)Linux系統
service mysql start
service mysql stop
service mysql restart ???????//重啟MySQL服務
*Windows系統下的MySQL使用命令(了解)
create user 'user01' @'localhost' identified by 'user01';???????? //創建用戶“identifie鑒定”
drop user ‘user01’@’localhost’;???????? ?//刪除用戶
select user,host from mysql.user;?? ??????????//查看所有用戶
select current_user(); ???select user();??????? //查看當前用戶
rename user 'user01'@'localhost' to 'User01'@'localhost';?? ??//將用戶名user01 改為User01
alter user 'User01'@'localhost' identified by 'User01';? ???//將密碼user01改為User01
show grants for ‘User01’@’localhost’; ????//查看當前登錄用戶所屬的條件
grant all on test.score to 'User01'@'localhost'; ?????????//這里的all是指將test庫里的score表的所有權限都給User01
revoke all on test.score from 'User01'@'localhost';? ????//撤銷權限
flush privileges; ??????//刷新系統權限表,即時生效
2、SQL語句的介紹
*創建表
???
describe student;?????? desc student?? //顯示詳細的表的信息結構
select * from student; ??//顯示表中所有的信息
show create table student; ??//顯示創建該表的SQL語句
drop table student;? ???//刪除整張表
truncate table student; ????//刪除表
delete from user; ????//刪除表中的記錄
delete from user where user_id = 1; ?????//有條件的刪除表中的記錄
insert into student (id,name,age) values(null,'zhangsan',23);????? //在表中插入數據
select name,id from student where id=20201304023;??? //有條件的查詢表中的內容
update student set sex = ‘男’ where sno = ‘20201304023’; ????//有條件地在表格修改數據
update student set sex = ‘男’;????? //把表格中選定的整列數據都給替換了
alter table 表名 rename to 新表名;? ???????//修改表名 ??????
alter table 表名 drop column 列名;??????? //刪除表中的具體列
alter table 表名 change 列名 新列名 varchar(30);??? //修改表中列的名字
alter table 表名 modify 列名 varchar(22); ????//修改表中具體列的屬性
alter table 表名 add 字段名 字段類型 first; ??????//將新增加的列設定為第一列
alter table 表名 add 字段名 字段類型 after 字段名; ??????//將新增加的列設置在某個列的后面(字段名:列名 ??字段屬性:列里面存儲的數據類型)
show columns from 表名; ?????????//查看表中所有的列名
alter table student engine= myisam; ????//修改數據表的類型,將其表的類型修改為myisam
create database 數據庫名; ??????//創建數據庫
show databases; ???????//查看所有的數據庫
drop database 數據庫名; ??????//刪除具體的數據庫
//快速添加一張表,使其與已存在的表student數據和結構一致
create table student2 as select * from student;
//快速添加一張表,使其與已存在的表student結構一致,但里面沒有任何數據
create table student3 as select * from student where 1 = 2;
//快速添加一張表,只要部分列、部分數據
create table student3 as select sno,sname,age from student where sno =2;
//刪除數據 ???
(1)drop刪除整張表
(2)delete只刪除表中的數據,保留表中的結構
(3)truncate只刪除表中的數據,保留表中的結構
//起別名的注意事項“AS”
select column_name(s) from table_name AS alias_name; ????//給表格起別名
SELECT column_name AS alias_name FROM table_name; ????//給列起別名
*使用別名的好處
(1)在查詢中涉及超過一個表
(2)在查詢中使用了函數
(3)列名稱很長或者可讀性差
(4)需要把兩個列或者多個列結合在一起
*給表取別名的語法
SELECT w.name, w.url, a.count, a.date
FROM Websites AS w, access_log AS a
WHERE a.site_id=w.id and w.name="菜鳥教程";??? //起了別名
SELECT Websites.name, Websites.url, access_log.count, access_log.date
FROM Websites, access_log ?
WHERE Websites.id=access_log.site_id and Websites.name="菜鳥教程";????? //沒起別名的
(表:Websites和access_log)
(表:Websites里的列為name,url)
(表:access_log里的列為count,date)
//有條件的查詢
//去重查詢
表格中的有些列里的元素重復了,想要顯示該列中的所有元素
(對多個列進行去重查詢,這些列組成的數組是不相同的。) ???distinct不同的,區別
//排序
(先對sal進行升序排序。如果某幾行的sal值相同,則會按deptno進行降序排序。)
//有條件的查詢“where”
(1)where +“算數運算符”
(2)where + “邏輯運算符”(與、或、非---------“and”“or”“!”)
(3)模糊查詢--------(“%”代表任意字符,“_”代表單個字符)
(4)非空判斷
(5)小括號-------劃分判斷語句的優先級
(SQL解析器在處理操作時會優先處理and操作,在處理or)