1、數據庫連接
1、通過命令行連接數據庫
[root@localhost ~]# mysql -u root -p
Enter password:
輸入以上命令,回車后輸入密碼,回車,出現 mysql> 命令提示窗口則表示登錄成功,可以在mysql>下輸入任何sql語句。
2、退出mysql
mysql> exit
Bye
2、創建數據庫
語法:CREATE DATABASE <數據庫名>;
先連接mysql服務后,再使用sql語句。可以通過命令連接也可以通過客戶端工具例如navicat連接,以下創建一個庫名為lemon的數據庫
mysql> create DATABASE lemon;
3、顯示數據庫
語法:show databases;
示例:查看mysql服務所有數據庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| future |
| lemon |
| mysql |
| test |
| test_mysql |
+--------------------+
4、刪除數據庫
語法:drop database <數據庫名>;
drop刪除數據庫命令謹慎使用,一旦刪除,所有數據都沒有了。以下示例:刪除一個庫名為test的數據庫。
mysql> drop DATABASE test;
5、選擇數據庫
語法:use <數據庫名>;
示例:選取數據庫lemon進行操作。
mysql> use lemon;
Database changed
6、創建表
語法:create table <表名> ( <字段名1> <類型1>,<字段名2> <類型2>, ...,<字段名n> <類型n>);
示例:需要創建一個學員信息表,用於存儲學號、姓名、性別、班級、年齡。
create table student(
sno int(8) not null primary key auto_increment comment '學號',
sname varchar(20) NOT NULL comment '姓名',
ssex varchar(4) NOT NULL comment '性別',
sclass int(8) NOT NULL comment '班級',
sage int(4) NOT NULL comment '年齡'
)DEFAULT CHARSET=utf8;
解析:
int為整型,這里學號sno、班級編號sclass設定為整型;
varchar字符型,這里姓名sname、性別ssex、年齡sage設定為字符型;
字段屬性設定為not null,表示字段值不允許空;
primary key關鍵字用於定義列為主鍵。主鍵唯一、不重復,一般以編號為主鍵;
auto_increment定義列屬性為自增,一般用於主鍵,插入數據時數值會自動加1;
comment相當於給列添加備注;
DEFAULT CHARSET 設置編碼,utf8對傳值中文防止亂碼。
7、顯示數據表
mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | student | | student1 | +----------------+
8、查看表結構
mysql> desc student;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| sno | int(8) | NO | PRI | NULL | auto_increment |
| sname | varchar(20) | NO | | NULL | |
| ssex | varchar(5) | NO | | NULL | |
| sclass | int(8) | NO | | NULL | |
| sage | int(4) | NO | | NULL | |
+--------+-------------+------+-----+---------+----------------+
9、刪除表
語法:drop table <表名>;
drop刪除表請謹慎操作,因為執行刪除命令后該表及包含的數據都會消失。以下示例:刪除一個表名為student的數據表。
mysql> drop table student;
10、插入表數據
語法:insert into <表名> ( 字段名1,字段名2,...字段名N)
values
( 值1, 值2,...值N );
示例:
1、往學員信息表中插入一條學員信息
insert into student (sno,sname,ssex,sclass,sage) values (6301,'檸檬','女',20190163,18);
注意:如果數據值為字符型必須用單引號或者雙引號括起來。
2、批量插入,插入多條學員信息
insert into student (sname,ssex,sclass,sage)
values
('毛毛','女',20190163,20),('大大','女',20190163,22);
11、修改表數據
語法:update 表名 set 字段名1= 新值1,字段名2=新值2, … where 條件表達式1 and(or) 條件表達式2 …;
示例:修改學員姓名為毛毛的性別為男
update student set ssex = '男' where sname = '毛毛';
12、查詢單表數據
語法:select 字段名1,字段名2,… from <表名> where 條件表達式1 and(or) 條件表達式2 … ;
1、查詢所有字段列信息
示例:查詢student表中,性別女且年齡在20歲以上的學員信息
select * from student where ssex = '女' and sage > 20
2、查詢指定字段列信息
示例:查詢student表中,性別女或者年齡在20歲以上的學員姓名
select sname from student where ssex = '女' or sage > 20;
3、查詢前幾行信息
示例:查詢student表中,性別女且年齡在20歲以上的前2行學員信息
select sname from student where ssex = '女' and sage > 20 limit 0,2;
13、查詢多表關聯數據
語法:
1、關聯查詢:select 字段名1,… from 表名1,表名2,…where 關聯條件表達式 and 過濾條件表達式 …;
2、等值連接:select 字段名1,… from 表名1 inner join 表名2 on 關聯條件表達式 and 過濾條件表達式… ;
3、左連接:select 字段名1,… from 表名1 left join 表名2 on 關聯條件表達式 and 過濾條件表達式… ;
3、右連接:select 字段名1,… from 表名1 right join 表名2 on 關聯條件表達式 and 過濾條件表達式… ;
示例:

1、以上左表user表,右表為左表的對象信息user_lover表,查詢兩表中存在對象關系的信息
SELECT * FROM `user`, user_lover WHERE `user`.id = user_lover.u_id;
SELECT * FROM `user`INNER JOIN user_lover on `user`.id = user_lover.u_id;
運行結果:

2、讀取左表全部數據,即使右表沒有關聯數據
SELECT * FROM `user`LEFT JOIN user_lover on `user`.id = user_lover.u_id;
運行結果:

3、以右表為基礎,與LEFT JOIN相反
SELECT * FROM `user` RIGHT JOIN user_lover on `user`.id = user_lover.u_id;
運行結果:

14、刪除表數據
語法:delete from 表名 where 條件1 and(or) 條件2……;
示例:刪除student表中年齡小於18歲的用戶信息
delete from student where sage < 18;
15、mysql學習教程
mysql官網:https://dev.mysql.com/doc/
runoob.com:https://www.runoob.com/mysql/
w3cschool:https://www.w3cschool.cn/mysql/