一.開啟MySQL服務器
1, 通過windows提供的服務管理器來完成
windows鍵+R 輸入: services.msc
2.在本地服務中打開其服務
3.在DOC命令行下
1 net stop mysql 2 net start mysql
4.利用bin目錄的mysqld來開啟
1 mysqld --defaults-file="G:/amp/mysql/my.ini"
二.客戶端連接服務器
1 mysql -uroot -p
登錄數據庫之后
1 # 告訴MySQL服務器,當前客戶端使用的是gbk編碼 2 set names gbk;
操作數據庫的三步曲(數據庫的初始化操作):
1, 連接數據庫
2, 設置默認的字符集
3, 選擇默認的數據庫
注意:
選擇了默認的數據庫,只會影響默認的操作,一樣可以操作其他的數據庫!
三.MySQL的幫助命令
幫助命令里面的命令都可以用' \ ' 加 首字母
1 help 2 \h
四.MySQL注釋符
單行注釋:
1 # 注釋內容 2 -- 注釋內容,這里的—與注釋內容之間必須有一個空格!
多行注釋
1 /* 注釋內容 */
五.數據庫操作(DDL)
DDL
DDL:Data Definition Language,數據定義語言
主要是用來定義和維護數據庫的各自操作對象(比如庫、表、視圖等),也可以說操作的層次是在數據庫的庫和表的邏輯結構和存儲結構上面,並沒有對表中的實際的數據進行增刪改查等操作!
主要的關鍵字有:create、drop、alter、show
DML
DML:Data Manipulation Language,數據操作語言
主要就是對表中的記錄進行增刪改查的操作!
其中“查詢”部分,又叫做DQL(Data Query Language)!
主要的關鍵字:insert、delete、update、select
DCL
DCL:Data Control Language,數據控制語言
主要是對數據庫進行一些統一的管理和控制,比如並發控制、存取控制、安全控制等,具體的操作有:權限管理,數據庫的備份與恢復等!
1 # 創建數據庫(增 DDL) 2 create database 數據庫名稱[數據庫選項]; 3 create database php2017; 4 -- 特殊字符(用標識限定符反引號包裹 `) 5 create database `select`; 6 create database `2017`;
1 # 查看當前有那些數據庫(DDL) 2 show databases;
1 -- 查看數據庫的創建語句(DDL) 2 show create database 數據庫名; 3 show create database php2017;
1 -- 刪除數據庫(DLL) 2 drop database 數據庫名稱; 3 drop database php2017;
1 -- 修改數據庫(改 DDL) 2 /* 3 注意:數據庫的名稱不可通過sql命令直接修改 4 以前有一個rename語法可以修改庫名的,但是有bug 5 6 如果要修改庫名,怎么辦? 7 有兩種方式: 8 a.直接修改數據庫的目錄名,但是要慎重,因為有時候不是所有的數據庫下的表都放在同一個地方! 9 b.先把當前數據庫下的數據表導出,創建一個新的數據庫再導入之前導出的數據表,最后再刪除之前的數據庫 10 */ 11 12 alter database 庫名 新的庫選項信息; 13 alter database php2017 default charset gbk;
六.數據表操作(DDL)
1 -- 顯示指定數據庫(DDL) 2 select * from mysql.user; 3 -- 選擇默認操作數據庫 4 use 庫名; 5 use php2017;
1 -- 創建數據表(DDL) 2 # 表選項:規定表的默認字符集和存儲引擎 3 create table 表名(字段1 字段類型1,字段2 字段類型2, ...)[表選項]; 4 create table student( 5 id int(11) primary key auto_increment, 6 name varchar(20), 7 age tinyint, 8 score float 9 );
1 -- 查看數據表(DDL) 2 show tables; 3 -- 查看表的創建語句 4 show create table 表名; 5 show create student; 6 -- 為了讓返回語句更有條理 7 show create student\G; 8 9 10 11 -- 查看表結構 12 describe 表名; 13 desc 表名;
-- 刪除數據表(DDL) drop table 表名; drop table student; -- 刪除的比較完整的語法形式 drop table if exists 表名; drop table if exists student; -- 類似的語法 create database if not exists 庫名; drop database if not exists 庫名; create table if not exists 表名; drop table if exists 表名; create table if not exists student( name varchar(20), age tinyint, score float );
-- 修改數據表(DDL) /* 表中有哪些地方可以修改? 表名,列定義(增加一列、刪除一列,列名、列類型、修改列排序),表選項 一個技巧: 盡管修改數據表的關鍵字有很多,但是基本上可以分成兩大部分: 第一部分:上級命令,alter table 表名 第二部分:下級命令,加上需要使用的關鍵字,比如: 改名(rename) 增加(add) 刪除(drop) 重命名(change) 修改(modify) */ -- 修改表名 alter table 表名 rename to 新表名; alter table 表名1 to 新表名1, 表名2 to 新表名2 to 新表名2; -- rename 還能將一個數據庫的表移動到另一個數據庫下 rename table stu1 to test.stu1; -- 修改列定義 -- 增加一列(first|after 是移動位置,默認在最后一位) alter table 表名 add 新字段名 字段類型 [first | after 字段名]; -- 刪除一列 alter table 表名 drop 字段名; -- 修改字段類型 alter table 表名 modify 字段名 新的字段類型; alter table stu1 modify name varchar(30);
alter table xiaoshou modify id int(11) auto_increment;//修改主鍵自增 -- 重命名字段(字段類型可以保留原樣或者修改) alter table 表名 change 原字段名 新字段名 字段類型 [frist | after 字段名]; alter table stu1 change name stu_name varchar(20) after stu_id; -- 修改表選項 alter table 表名 新的表選項信息 alter table stu1 default charset gbk;
七.數據操作(DML)
-- 插入數據(DML) insert into 表名(字段列表) values(值列表); insert into stu1(stu_name, stu_id, score) values('鳴人', 1701, 98); -- 插入多條數據 insert into stu1 values (1702,'佐助',2345,22,90), (1703,'天天',2445,25,99), (1704,'小櫻',1445,26,80); -- 或者只是插入多條部分數據 insert into stu1(stu_name, stu_id, score) values ('曉紅', 1705, 100), ('小米', 1706, 100), ('小明', 1707, 99.9); -- 另一種兼容語法 insert into 表名 set 字段名1 = 值, 字段名2 = 值2...; insert into stu1 set stu_name = '零零七', score = 88;
-- 查詢數據(DML) select *|字段列表 from 表名[查詢條件]; /* 1, 當查詢所有字段的時候,可以使用*代替 2, 查詢條件可以省略,如果省略代表查詢所有的記錄,相當於where 1; */ select * from stu1 where 1;
-- 刪除數據(DML) delete from 表名[刪除條件] deleta from stu1 where score< 90; -- 提示:MySQL中的NULL,比較特殊,不參與任何的運算!或者說參與任何運算的結果都為NULL
-- 修改數據(DML) update 表名 set 字段1 = 新值1, 字段2 = 新值2,...[修改條件]; update stu1 set age = age + 1 where 1;
模糊查詢
_ :代表任意的一個字符
%:代表任意的字符(包括0個)
show collation like 'utf8_%';
設置校對集
1 -- 設置校對集語法 2 collate 校對集; 3 create database php2017 default charset gbk collate gbk_chinese_ci; 4 5 /* 6 7 常見的校對規則有: 8 ci結尾:不區分大小寫 9 cs結尾:區分大小寫 10 bin結尾:二進制編碼比較 11 關於校對集,我們一般使用其默認值就行了 12 utf8不支持中文比較,但是gbk支持(比較的還是拼音) 13 在真實的項目中,一般不會用中文作為排序的字段! 14 15 */
