mysql資料庫常用命令
1.啟動和停止MySQL服務
# 連接:
C:\WINDOWS\system32>mysql -u root -p
passwd:****
C:\WINDOWS\system32>mysql -uroot -proot
Windows開啟mysql: net start mysql57
windows關閉mysql: net stop mysql57
2.資料庫操作
2.1創建、洗掉、查看
語法:
#創建資料庫
create database mydb1 charset=utf8;
#查詢當前資料庫服務器中的所有資料庫
mysql>show databases;
#查看當前正在使用的資料庫
mysql>select database();
#進入、切換資料庫
mysql>use mydb1;
#洗掉資料庫
mysql>drop database mydb1;
#退出資料庫
mysql>exit; or mysql>quit;
#創建表
# 方式一:
mysql>create table employee(id int primary key auto_increment, name varchar(20), gender varchar(10), birthday date, Entry_date date, job varchar(20), Salary float, resume text);
# 方式二:
mysql> create table employee1(
-> id int primary key auto_increment,
-> name varchar(10),
-> gender varchar(10),
-> birthday date,
-> Entry_date date,
-> job varchar(20),
-> Salary float,
-> resume text);
#顯示當前資料庫中的所有表
mysql>show tables;
#顯示所有表中的所有欄位
mysql>desc worker;
#洗掉表
mysql>drop table students; # 慎重使用
mysql> delete from students where name="馬東";
mysql> truncate table students;
? 2.2查詢、插入、更新
# 查詢
mysql> select * from students;
Empty set (0.00 sec)
#插入多行
mysql> insert into students(name,age) values('馬化騰',40),('馬明哲',60);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
# 報錯,主鍵不能重復
mysql> insert into students values(1,"馬超",48)
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> insert into students values(5,"馬超",48);
Query OK, 1 row affected (0.00 sec)
# 更新
mysql> update students set age=18 where name="馬冬梅";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from students;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 馬云 | 50 |
| 2 | 馬化騰 | 40 |
| 3 | 馬明哲 | 60 |
| 5 | 馬超 | 48 |
| 8 | 馬冬梅 | 18 |
| 9 | 馬云 | 50 |
+----+--------+------+
6 rows in set (0.00 sec)
#條件查詢,主要結合where
mysql> select * from students where age>40 and age<90;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 5 | 馬保國 | 60 |
| 6 | 馬云 | 50 |
+----+--------+------+
2 rows in set (0.00 sec)
mysql> select * from students where age<=40 or age>=90;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 馬斯克 | 40 |
| 2 | 馬克思 | 100 |
| 3 | 馬斯克 | 40 |
| 4 | 馬克思 | 100 |
| 7 | 馬思純 | 30 |
+----+--------+------+
5 rows in set (0.00 sec)
mysql> select * from students where not age<=40;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 2 | 馬克思 | 100 |
| 4 | 馬克思 | 100 |
| 5 | 馬保國 | 60 |
| 6 | 馬云 | 50 |
+----+--------+------+
4 rows in set (0.00 sec)
mysql> select * from students where age between 50 and 60;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 5 | 馬保國 | 60 |
| 6 | 馬云 | 50 |
+----+--------+------+
2 rows in set (0.00 sec)
mysql> select * from students where age in (50,10,20,30,40,100);
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 馬斯克 | 40 |
| 2 | 馬克思 | 100 |
| 3 | 馬斯克 | 40 |
| 4 | 馬克思 | 100 |
| 6 | 馬云 | 50 |
| 7 | 馬思純 | 30 |
+----+--------+------+
6 rows in set (0.00 sec)
# _ : 匹配任意一個字符
# %:匹配0~n個字符【n大于等于1】
mysql> select * from students where name like '___';
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 馬斯克 | 40 |
| 2 | 馬克思 | 100 |
| 3 | 馬斯克 | 40 |
| 4 | 馬克思 | 100 |
| 5 | 馬保國 | NULL |
| 7 | 馬思純 | 30 |
+----+--------+------+
6 rows in set (0.00 sec)
mysql> select * from students where name like '馬%';
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 馬斯克 | 40 |
| 2 | 馬克思 | 100 |
| 3 | 馬斯克 | 40 |
| 4 | 馬克思 | 100 |
| 5 | 馬保國 | NULL |
| 6 | 馬云 | 50 |
| 7 | 馬思純 | 30 |
+----+--------+------+
7 rows in set (0.00 sec)
mysql> select * from students where name like '馬_';
+----+------+------+
| id | name | age |
+----+------+------+
| 6 | 馬云 | 50 |
+----+------+------+
1 row in set (0.00 sec)
mysql> select * from students where name like '%思%';
+----+--------+------+
| id | name | age |
+----+--------+------+
| 2 | 馬克思 | 100 |
| 4 | 馬克思 | 100 |
| 7 | 馬思純 | 30 |
+----+--------+------+
3 rows in set (0.00 sec)
# as: 起別名,用法 :select 欄位 as 別名(可以省略)
mysql> select id as 編號,name 姓名 from students s;
+------+--------+
| 編號 | 姓名 |
+------+--------+
| 1 | 馬斯克 |
| 2 | 馬克思 |
| 3 | 馬斯克 |
| 4 | 馬克思 |
| 5 | 馬保國 |
| 6 | 馬云 |
| 7 | 馬思純 |
+------+--------+
7 rows in set (0.00 sec)
# distinct: 去除重復記錄
mysql> select distinct age from students;
+------+
| age |
+------+
| 40 |
| 100 |
| NULL |
| 50 |
| 30 |
+------+
5 rows in set (0.00 sec)
# order by 排序(多個用','號隔開)
# asc 升序(默認)、desc 降序
mysql> select * from students order by age desc,id desc;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 4 | 馬克思 | 100 |
| 3 | 馬斯克 | 100 |
| 2 | 馬克思 | 100 |
| 6 | 馬云 | 50 |
| 1 | 馬斯克 | 40 |
| 7 | 馬思純 | 30 |
| 5 | 馬保國 | NULL |
+----+--------+------+
# 聚合函式
#count 計數、sum 、max、min、avg
mysql> select count(*) from students;
+----------+
| count(*) |
+----------+
| 7 |
+----------+
1 row in set (0.00 sec)
3.備份
命令:mysqldump -u root -p 資料庫名>生成sql腳本的路徑
注意:
? 可以不需要登錄資料庫
? windows系統: 使用管理員權限打開CMD
演示:
C:\Users\ijeff> mysqldump -u root -p mydb1 > C:/Users/ijeff/Desktop/mydb1.sql
4.恢復
前提:必須先創建資料庫【空的】
注意:需要先登錄資料庫,然后進入指定的資料庫,執行sql腳本
演示:
C:\Users\ijeff> mysql -u root -p
Enter password:
mysql> create database test;
mysql> use test;
mysql> show tables;
mysql> source C:/Users/ijeff/Desktop/mydb1.sql
5.索引
# 查看索引:
show index from user;
show index from user\G;
# 創建索引
# 普通索引:alter table user add index(id);
# 唯一索引:alter table user add unique index(name);
# 主鍵索引:alter table user add primary index(hobby);
# 洗掉索引
alter table user drop index name;
6.alter操作
#1.修改表名
alter table tb_emp rename emp;
#2.修改欄位的資料型別
alter table emp change sal float;
#3.修改欄位名
alter table emp sal float salary;
#4.添加欄位
alter table emp add phone varchar(20);
#5.洗掉欄位
alter table emp drop phone;
#6.修改欄位的排列位置
alter table emp modify dno first;
alter table emp modify dno int after eno;
#7.洗掉表的外鍵約束
alter table emp drop foreign key fk_emp_dno
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/233173.html
標籤:其他
上一篇:SQL陳述句練習(Student,Course,SC表)
下一篇:oracle19c這讓我自閉了
