> 前面講解了Mysql的安裝以及連接工具。本文是Mysql入門實戰的上,主要講解mysql服務的啟動與停止,數據庫管理,表管理以及數據的增刪改;
### [源碼下載地址](https://github.com/wpeace1212/Mysql/blob/master/hello.sql)
### 1.Mysql服務的啟動,停止
一般只要你安裝好了,每次啟動電腦時mysql服務都是自動啟動的。當然mysql也有他自己的啟動停止等命令;
### 1.1windows下Mysql的啟動與停止:
在 Windows 命令提示符下運行:
啟動: net start MySQL
停止: net stop MySQL
重啟: net restart MySQL
### 1.2Linux下Mysql的啟動與停止:
1. 啟動:
使用 service 啟動:service mysql start
使用 mysqld 腳本啟動:/etc/inint.d/mysql start
使用 safe_mysqld 啟動:safe_mysql&
1. 停止:
使用 service 啟動:service mysql stop
使用 mysqld 腳本啟動:/etc/inint.d/mysql stop
mysqladmin shutdown
1. 重啟:
使用 service 啟動:service mysql restart
使用 mysqld 腳本啟動:/etc/inint.d/mysql restart
### 2.數據庫管理:
### 2.1登陸到mysql:
當 MySQL 服務已經運行時, 我們可以通過MySQL客戶端工具登錄到MySQL數據庫中:
命令如下:
~~~
mysql -h 主機名 -u 用戶名 -p
-h : 該命令用于指定客戶端所要登錄的MySQL主機名, 登錄當前機器該參數可以省略;
-u : 所要登錄的用戶名;
-p : 告訴服務器將會使用一個密碼來登錄, 如果所要登錄的用戶名密碼為空, 可以忽略此選項。
如登陸本地的:
peace@peace-rong:~$ mysql -u root -p
Enter password: #鍵入你安裝時用的密碼
Welcome to the MySQL monitor. Commands end with ; or \g.
~~~
登陸后就可以使用mysql的sql命令了
~~~
SQL語句的分類:
DDL: 數據定義語言:
create / drop / alter
DML:數據操作語句:
insert / delete /update / truncate
DQL: 數據查詢語言:select / show
~~~
**注意**:MySQL語句以分號(;)作為語句的結束, 若在語句結尾不添加分號時, 命令提示符會以 -> 提示你繼續輸入(有個別特例, 但加分號是一定不會錯的);
### 2.2查詢所有數據庫:
命令:show databases;注意分號結尾
~~~
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |-- mysql元數據,基礎數據
| day01 |--這是我自己建立的數據庫
| mysql |--mysql配置數據庫,其中包含用戶信息。(用戶名和密碼,權限管理)
| performance_schema |--mysql數據庫軟件的運行數據,日志信息,性能數據
| test | --測試數據庫。空的
+--------------------+
5 rows in set (0.00 sec)
mysql>
~~~
### 2.3創建數據庫:
要使用數據庫你得先創建自己的數據庫:
1.
語法格式:
~~~
create database 數據庫名 [其他選項];
~~~
其中其他選項可選;
1. 實踐:
創建一個數據庫day01并且指定默認字符級為utf-8;注意在sql中需要寫成utf8
~~~
create database day01 default character set utf8;
##創建成功返回結果如下:
Query OK, 1 row affected (0.00 sec)
~~~
你可以查看剛剛創建的數據庫的默認字符集:
~~~
show create database day01;
##輸出:
'day01', 'CREATE DATABASE `day01` /*!40100 DEFAULT CHARACTER SET utf8 */'
~~~
### 2.4 刪除數據庫:
這條語句勿亂用!!!!!!!
1.
語法格式:
~~~
drop database 數據庫名;
~~~
1.
實踐:
刪除剛剛創建的數據庫;
~~~
mysql> drop database day01;
Query OK, 0 rows affected (0.01 sec)
~~~
### 2.5修改數據庫:
1.
語法格式:
~~~
alter database 數據庫名 default character set gbk;
~~~
1.
實踐:
修改剛剛創建的數據庫的默認字符;
~~~
mysql> alter database day01 default character set gbk;
Query OK, 1 row affected (0.00 sec)
~~~
### 2.6使用數據庫
要對一個數據庫進行操作, 必須先選擇該數據庫, 否則會提示錯誤:
ERROR 1046(3D000): No database selected
兩種方式對數據庫進行使用的選擇:
1. 在登錄數據庫時指定, 命令: mysql -D 所選擇的數據庫名 -h 主機名 -u 用戶名 -p
例如登錄時選擇剛剛創建的數據庫: mysql -D day01 -u root -p;
2. 在登錄后使用 use 語句指定, 命令: use 數據庫名;
use 語句可以不加分號, 執行 use samp_db 來選擇剛剛創建的數據庫, 選擇成功后會提示: Database changed
### 3.表管理:
有了數據庫你就可以對數據庫進行操作了,比如創建和修改表,添加數據等;下面的演示都以day01來表現;
~~~
use day01;--使用day01
~~~
### 3.1查看所有表:
1.
語法格式:
~~~
show tables;
~~~
1.
演示如下:因為我們還沒有創建表所以是空表
~~~
mysql> show tables;
Empty set (0.00 sec)
~~~
### 3.2創建表
有了數據庫必須有表才能存儲你所需要的數據;
1. 表能存儲的字符類型如下:
~~~
1.數字類型
整數: tinyint、smallint、mediumint、int、bigint
浮點數: float、double、real、decimal
2.日期和時間: date、time、datetime、timestamp、year
3.字符串類型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
4.二進制(可用來存儲圖片、音樂等): tinyblob、blob、mediumblob、longblob
~~~
1. 語法格式
~~~
##簡單格式
create table 表名稱(列聲明);**注意**列聲明由逗號隔開最后一個列聲明沒有逗號。
##帶條件創建,判斷是否存在表:不存在則創建:
create table if not exists 表名稱(列聲明);
~~~
1. 實踐:
以創建 students 表為例, 表中將存放 學號(sid)、姓名(sname)、分數(smark)、年齡(sage)、 這些內容:
~~~
-- create table
create table student(
sid INT,-- 學號整型
sname varchar(20),-- 名字字符型
smark int,-- 分數整型
sage int-- 年齡
);
##輸出:
Query OK, 0 rows affected (0.01 sec)
~~~
1. 查看剛剛創建的表結構:
~~~
desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sid | int(11) | YES | | NULL | |
| sname | varchar(20) | YES | | NULL | |
| smark | int(11) | YES | | NULL | |
| sage | int(11) | YES | | NULL | |
~~~
### 3.3刪除表
這條語句勿亂用!!!!!!!
1.
語法格式:
~~~
drop table 表名;
~~~
1.
實踐:
刪除剛剛創建表;
~~~
mysql> drop table student;
Query OK, 0 rows affected (0.01 sec)
~~~
### 3.4修改表:
修改用alter命令語句;
1. 添加字段:
~~~
-- 添加字段sgender varchar(2);性別
alter table student add column sgender varchar(2);
~~~
1. 刪除字段:
~~~
-- 刪除字段,先添加sbb字段,然后再刪除
alter table student add column sbb varchar(2);
alter table student drop column sbb;
~~~
1. 修改字段類型:
~~~
-- 修改字段數據類型。修改字段 smark int到 smark varchar(2);
alter table student modify column smark varchar(2);
~~~
1. 修改字段名稱:
~~~
-- 修改字段名稱,將smark修改為mark
alter table student change column smark mark int;
~~~
1. 修改表名稱:
~~~
-- 修改表名稱,將student表名修改為teacher
alter table student rename to teacher;
~~~
### 4.增刪改數據
毫無疑問查詢語句是sql中用的最多的語句,但是沒有增刪改,查詢的存在也無意義。這部分只要講解:insert,update,delete語句的使用;
### 4.1插入數據:insert
insert語句也是常用語句,用來向表插入一行數據。
1. 語法格式:
~~~
##插入:全部字段必須給值
INSERT INTO 表名 VALUES(值);-- 此去必須給全值
##插入部分字段:
INSERT INTO 表名(字段1,字段2) VALUES(字段1的值,字段2的值)
~~~
1. 實踐:
向student插入數據:
~~~
-- 1.增加數據
INSERT INTO student VALUES(001,'peace',1,22,'男');-- 注意不能少或多字段值
-- 插入部分字段
INSERT INTO student(sid,sname) VALUES(002,'rong');
~~~
### 4.2刪除數據:delete
delete語句要慎用!!!
1.
語法格式:
delete from 表 where 條件(可選)
1.
演示如下:
~~~
-- 刪除所有數據(建議少用)--
-- delete from student;
-- 帶條件的刪除--
delete from student where sid=003;
~~~
1. delete和truncate table比較
~~~
-- delete from: 可以全表刪除 1)可以帶條件刪除 2)只能刪除表的數據,不能刪除表的約束 3)使用delete from刪除的數據可以回滾(事務)
-- truncate table: 可以全表刪除 1)不能帶條件刪除 2)即可以刪除表的數據,也可以刪除表的約束 3)使用truncate table刪除的數據不能回滾
-- TRUNCATE TABLE student;
~~~
### 4.3修改數據:update
這個可以用來修改指定行的內容,比如qq修改名字等
1.
語法格式:
update 表名 set 字段名=修改后的值 where 條件(可選);
1.
演示如下:
~~~
-- 修改所有數據,建議少用--
UPDATE student set mark=10;
-- 帶條件的修改(建議使用)--
update student set mark=2 where sid=2;
-- 修改多個字段,SET 字段名=值,字段名=值,....--
update student set mark=1,sage=23 where sid=1;
~~~
好的本章介紹到這里
來自一條小鯊魚wpeace(rlovep.com)