日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql+control+user_mysql的基本使用

發布時間:2023/12/15 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql+control+user_mysql的基本使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用root賬號管理其他用戶

#創建用戶

mysql> create user 'jasonhz'@'localhost' identified by '123456';

#給用戶授權

mysql> grant all privileges on myschool.* to 'jasonhz'@'localhost';

#刷新授權

mysql> flush privileges;

#更改用戶密碼

mysql> set password for 'jasonhz'@'localhost' = password('111222');

#刪除用戶

mysql> drop user 'jasonhz'@'localhost';

SQL語句(Structured Query Language 結構化查詢語言)

DDL (Data Definition Language 數據定義語言) 如:CREATE DROP ALTER

DML( Data Manipulation Language 數據操縱語言) 如: INSERT UPDATE DELETE

DQL(Data Query Language 數據查詢語言) 如:SELECT

DCL(Data Control Language 數據庫控制語言) 如:GRANT COMMIT ROLLBACK

DDL (Data Definition Language 數據庫定義語言)

#創建數據庫

mysql> create database if not exists hzdb;

#使用數據庫

mysql> use hzdb;

#查看所有可訪問的數據庫

#除了hzdb是自己創建的,mysql系統中有四個默認的庫 information_schema 、 mysql、performance_schema、sys

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| hzdb |

| mysql |

| performance_schema |

| sys |

+--------------------+

#刪除數據庫

mysql> drop database hzdb;

#查看數據庫支持的引擎

mysql> show engines;

#查看數據庫默認的引擎

mysql> show variables like '%storage_engine%';

#查看當前數據庫的編碼

mysql> show variables like '%char%';

#創建表

mysql> create table person(

-> `id` int(4) primary key auto_increment comment '編號',

-> `name` varchar(50) not null default '無名氏' comment '姓名',

-> `address` varchar(100) comment '地址'

-> )engine=innodb default charset=utf8 comment='人員信息';

#查看所有表

mysql> show tables;

#查看表的結構

mysql> desc person;

+---------+--------------+------+-----+-----------+----------------+

| Field | Type | Null | Key | Default | Extra |

+---------+--------------+------+-----+-----------+----------------+

| id | int(4) | NO | PRI | NULL | auto_increment |

| name | varchar(50) | NO | | 無名氏 | |

| address | varchar(100) | YES | | NULL | |

+---------+--------------+------+-----+-----------+----------------+

#修改表名

mysql> alter table person rename student;

#添加字段

mysql> alter table student add `phone` varchar(13) comment '電話';

#修改字段屬性,不能修改表名

mysql> alter table student modify `phone` int(11);

#修改字段,同時修改表名

mysql> alter table student change `phone` `tel` varchar(50) not null;

#刪除字段

mysql> alter table student drop `tel`;

#刪除表,刪除數據要慎重

mysql> drop table student;

DML( Data Manipulation Language 數據操縱語言)

#添加數據

mysql> insert into student (`id`,`name`) values ('1','張三');

mysql> insert into student (`id`,`name`) values ('4','張三'),('6','李四'),('8','王五');

#修改數據

mysql> update student set `name`='李靖' where id=1;

#刪除數據

mysql> delete from student where id=1;

#刪除所有數據,兩種方法

mysql> delete from student;

mysql> truncate table student;

DQL(Data Query Language 數據查詢語言)

(有需要sql腳本做練習的請聯系我)

#基本查詢:

#查詢student表中全部信息

mysql> select * from student;

#通過student表,查詢`studentNo`,`studentName`,`phone`,`address`,`birthday`字段的信息

mysql> select studentNo, studentName, phone, address, birthday from student;

#通過student表,查詢`studentNo`,`studentName`,`phone`,`address`,`birthday`字段的信息,使用as重命名列名顯示

mysql> select studentNo as 學號,studentName as 姓名,phone as 電話,address as 地址,birthday as 生日 from student;

#查詢email值為null的空行

mysql> select * from student where email is null;

#把成績都降低10%后加5分,再查詢及格成績,并按照成績從高到低排序(order by)

mysql> select studentNo as 學號, (studentResult*0.9+5) as 成績 from result where (studentResult*0.9+5)>60 order by studentResult desc;

#查詢所有年級編號為1的學員信息,按學號升序排序,從第5條記錄開始顯示4條數據(limit)

mysql> select * from student where gradeId=1 order by studentNo asc limit 4,4;

#編寫SQL語句,查看年齡比“李斯文”小的學生,要求顯示這些學生的信息

mysql> select studentName, birthday from student where birthday>(select birthday from student where studentName='李斯文');

#查詢參加最近一次Logic Java考試成績的學生的最高分和最低分

mysql> select max(studentResult) 最高分,min(studentResult) 最低分 from result where examDate=(select max(examDate) from result where subjectNo=(select subjectNo from subject where subjectName='LogicJava'));

#查詢“LogicJava”課程考試成績為60分的學生名單(采用 IN 子查詢 )

mysql> select studentNo, studentName from student where studentNo in(select studentNo from result where subjectNo=(select subjectNo from subject where subjectName='LogicJava'));

#查詢參加“LogicJava”課程最近一次考試的在讀學生名單

mysql> select studentNo, studentName from student where studentNo in( select studentNo from result where examDate=(select max(examDate) from result where subjectNo=(select subjectNo from subject where subjectName='LogicJava')));

#查詢未參加“LogicJava”課程最近一次考試的在讀學生名單(not in)

mysql> select studentNo, studentName from student where studentNo not in( select studentNo from result where examDate=(select max(examDate) from result where subjectNo=(select subjectNo from subject where subjectName='LogicJava')));

#查詢大一學期開設的課程

mysql> select subjectName from subject where gradeId=(select gradeId from grade where gradeName='大一');

#查詢未參加“HTML”課程最近一次考試的在讀學生名單

mysql> select studentNo, studentName from student where studentNo not in( select studentNo from result where examDate=(select max(examDate) from result where subjectNo=(select subjectNo from subject where subjectName='HTML')));

#高級查詢:

#查看沒有參加考試的學生

mysql> select studentName from student where studentNo in (select studentNo from result where studentResult is null);

#檢查“LogicJava”課程最近一次考試成績,如果有80分以上的成績,顯示分數排在前5名的學員學號和分數

mysql> select studentNo, studentResult from result where exists (select studentResult from result where examDate=(select max(examDate) from result where subjectNo=(select subjectNo from subject where subjectName='LogicJava')) and studentResult > 80) order by studentResult desc limit 5;

#檢查“Logic Java”課程最近一次考試成績,如果全部通過考試(60分及格)計算的該次考試平均分減5分

mysql> select avg(studentResult)-5 平均分 from result where exists(select studentResult from result where examDate=(select max(examDate) from result where subjectNo=(select subjectNo from subject where subjectName='LogicJava')) and studentResult > 60);

#如果有大一的學生,就查詢參加大一學科考試的學員學號、科目編號、考試成績,考試時間

mysql> select studentNo 學號, subjectNo 科目編號, studentResult 成績, examDate 考試時間 from result where exists (select studentNo from student where gradeId=(select gradeID from grade where gradeName='大一'));

#查詢每門課程的平均分,并且按照分數由高到低的順序排列顯示(分組查詢)

mysql> select subjectNo 課程編號,avg(studentResult) 平均分 from result group by subjectNo order by avg(studentResult) desc;

#分別統計每個年級男、女生人數

mysql> select count(*) 人數, sex 性別 from student group by sex;

#如何獲得課程平均分及格的課程編號?(分組篩選語句)

mysql> select subjectNo 課程編號,avg(studentResult) 平均分 from result group by subjectNo having avg(studentResult)>80;

#查詢出學生姓名,學生的年級,學生的課程,考試分數,考試時間字段的學生信息(多表查詢)

mysql> select studentName 姓名, gradeName 年級, subjectName 課程,studentResult 成績,examDate 考試時間 from student inner join grade on student.gradeId = grade.gradeID inner join subject on student.gradeId=subject.gradeID inner join result on student.studentNo=result.studentNo;

DCL(Data Control Language 數據庫控制語言)

#事務處理,只支持innodb和bdb類型的數據表

#關閉自動提交,同時開啟一個事務

mysql> set autocommit=0;

mysql> update acc set `money`=`money`-500 where `name`='Tom';

mysql> update acc set `money`=`money`+500 where `name`='Jerry';

#提交,將數據寫入到數據庫保存

mysql> commit;

#回到事務處理前的狀態,如果已經提交成功,則回滾無效

mysql> rollback;

#打開自動提交

mysql> set autocommit=1;

數據庫備份與恢復

#使用mysqldump備份

$ > mysqldump -u root -p myschool > /users/jason/myschool.sql;

#使用source恢復

mysql> use testdatabase;

mysql> source /user/jason/myschool.sql;

總結

以上是生活随笔為你收集整理的mysql+control+user_mysql的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。