MySQL簡易教程(學習筆記)

MySQL數(shù)據(jù)庫:是數(shù)據(jù)庫管理軟件
MySQL(Structured Query Language):結(jié)構(gòu)化查詢語言

MySQL語言分類

  • DDL(數(shù)據(jù)定義語言):定義數(shù)據(jù)庫、數(shù)據(jù)表結(jié)構(gòu),如:create(創(chuàng)建),drop(刪除),alter(修改)
  • DML(數(shù)據(jù)操作語言):主要用于操作數(shù)據(jù),如:insert(插入),update(修改),delete(刪除)
  • DCL(數(shù)據(jù)控制語言):定義訪問語言,取消訪問權(quán)限,安全設(shè)置
  • DQL(數(shù)據(jù)查詢語言):如:select(查詢),from子句,where子句

MySQL數(shù)據(jù)庫的安裝和配置

MySQL下載地址: https://www.mysql.com/downloads/

登陸數(shù)據(jù)庫

mysql -u賬號 -p密碼

或者

mysql -u賬號 -p
Enter password:密碼

MySQL 創(chuàng)建數(shù)據(jù)庫:

方式一 直接創(chuàng)建數(shù)據(jù)庫:
create database 數(shù)據(jù)庫名;

mysql> create database 方式一的數(shù)據(jù)庫;
Query OK, 1 row affected (0.07 sec)

mysql> show databases;
+-----------------------+
| Database              |
+-----------------------+
| cloud_note            |
| day06                 |
| day07                 |
| db1                   |
| db2                   |
| information_schema    |
| jiapu                 |
| kengchacha            |
| mysql                 |
| netctoss              |
| o2o                   |
| performance_schema    |
| stu                   |
| student               |
| sys                   |
| test                  |
| ttms                  |
| user                  |
| 方式一的數(shù)據(jù)庫        |
+-----------------------+
19 rows in set (0.01 sec)

方式二 創(chuàng)建數(shù)據(jù)庫同時設(shè)置字符集:
create database 數(shù)據(jù)庫名 character set 字符集;

方式三 創(chuàng)建數(shù)據(jù)庫同時,設(shè)置字符集編碼和校對規(guī)則:
create database 數(shù)據(jù)庫名 character set 字符集 collate 校對規(guī)則;

create database 數(shù)據(jù)庫名 character set 字符集 collate 校對規(guī)則

演示:創(chuàng)建一個數(shù)據(jù)庫,命名為“測試”,并設(shè)置字符編碼為utf8;


mysql> create database 測試 character set utf8;
Query OK, 1 row affected, 1 warning (0.11 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| day06              |
| db1                |
| db2                |
| information_schema |
| mysql              |
| performance_schema |
| student            |
| sys                |
| user               |
| 測試               |
+--------------------+
10 rows in set (0.11 sec)

數(shù)據(jù)庫刪除

drop database 數(shù)據(jù)庫名

演示:刪除名為“測試”的數(shù)據(jù)庫;

mysql> drop database 測試;
Query OK, 0 rows affected (0.23 sec)

修改:

alter database 數(shù)據(jù)庫 character set 字符集(如:utf8)

查看數(shù)據(jù)庫:

查看所有數(shù)據(jù)庫show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| cloud_note         |
| day06              |
| day07              |
| db1                |
| db2                |
| information_schema |
| jiapu              |
| kengchacha         |
| mysql              |
| netctoss           |
| o2o                |
| performance_schema |
| stu                |
| student            |
| sys                |
| test               |
| ttms               |
| user               |
+--------------------+
18 rows in set (0.02 sec)
show create database 數(shù)據(jù)庫名;
select database();

切換數(shù)據(jù)庫 use 數(shù)據(jù)庫名

use student  //如,我現(xiàn)在需要將數(shù)據(jù)庫切換到student數(shù)據(jù)庫中

表結(jié)構(gòu)操作:

創(chuàng)建:

create table 表名(
      字段1 字段類型 字段約束,
      字段2 字段類型 字段約束  
);

字段類型:特別注意為cahr(固定長度) / varchar(可變長度)

字段約束:

  • primary key 主鍵約束
  • unique 唯一約束
  • not null 非空約束
    自增長:auto_increment

刪除表:

drop table 表名;

修改表:

alter table 表名 (add,modify,change,drop) ;
rename table 舊表名 to 新表名;
alter table 表名 character set 字符集

查詢表結(jié)構(gòu):

  show tables; 查詢出所以的表
  show create table 表名 //表達創(chuàng)建語句,表的定義
  desc 表名  //表結(jié)構(gòu)

MySQL查看數(shù)據(jù)表

查看表

  • 查看所有的表show tables;
mysql> show tables;
+-----------------+
| Tables_in_day06 |
+-----------------+
| stu             |
+-----------------+
1 row in set (0.00 sec)
  • 查看表的創(chuàng)建過程show create table stu
mysql> show create table stu;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                              |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| stu   | CREATE TABLE `stu` (
  `sid` int(11) NOT NULL,
  `sname` varchar(31) DEFAULT NULL,
  `sex` int(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
  • 查看表結(jié)構(gòu)desc stu
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sid   | int(11)     | NO   | PRI | NULL    |       |
| sname | varchar(31) | YES  |     | NULL    |       |
| sex   | int(11)     | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

修改表

mysql> SHOW TABLES FROM mysql;

查看數(shù)據(jù)表結(jié)構(gòu)

SHOW COLUMNS FROM table_name;
eg:

`mysql> show columns from tb1;`
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| username | varchar(20)         | YES  |     | NULL    |       |
| age      | tinyint(3) unsigned | YES  |     | NULL    |       |
| salary   | float(8,2) unsigned | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

MySql 記錄的插入與查找

INSERT

  • 插入記錄
  • INSERT[INTO] tbl_name[(col_name,...)] VALUES(val,...)

1、為表中所以字段插入記錄:

mysql> INSERT tb1 VALUES('XIAOLI',21,8000);
Query OK, 1 row affected (0.02 sec)

2、為表中特定字段插入記錄:

mysql> INSERT tb1(username,age) VALUES('Tom',20);
Query OK, 1 row affected (0.00 sec)

SELECT

  • 記錄查找
  • SELECT expr,... FROM tbl_name

1、查看表中所有記錄:

mysql> SELECT * FROM tb1;
+----------+------+---------+
| username | age  | salary  |
+----------+------+---------+
| XIAOLI   |   21 | 8000.00 |
| Tom      |   20 |    NULL |
+----------+------+---------+
2 rows in set (0.01 sec)

空值與非空

  • NULL,字段可以為空
  • NOT NULL ,字段值禁止為空
    演示:創(chuàng)建數(shù)據(jù)表,設(shè)置字段nameNOT NULL。
mysql> CREATE TABLE tb2(
    -> username VARCHAR(20) NOT NULL,
    -> age TINYINT UNSIGNED NULL
    -> );
Query OK, 0 rows affected (0.10 sec)

mysql> show columns from tb2;
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| username | varchar(20)         | NO   |     | NULL    |       |
| age      | tinyint(3) unsigned | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

實驗1:
插入記錄usernameXIAOWANG,ageNULL

mysql> INSERT tb2 VALUES('XIAOWANG',NULL);
Query OK, 1 row affected (0.03 sec)

實驗2:
插入記錄usernameNULL,age25

mysql> INSERT tb2 VALUES(NULL,25);
ERROR 1048 (23000): Column 'username' cannot be null

錯誤提示:字段usermane不能為null

AUTO_INCREMENT

  • 自動編號,且必須與主鍵組合使用
  • 默認情況下,起始值為1,沒次的增量為1
    演示:創(chuàng)建一個數(shù)據(jù)表
    1、錯誤示范
mysql> CREATE TABLE tb3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT,
    -> username VARCHAR(30) NOT NULL
    -> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

錯誤提示:必須定義為主鍵
2、正確示范

多表操作

  • 多表操作之間的關(guān)系如何來維護:
    wawa
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是存儲數(shù)據(jù)的集合的單獨的應(yīng)用程序。每個數(shù)據(jù)庫具有一個或多個不同的API,用于創(chuàng)建,訪問,管理...
    chen_000閱讀 4,144評論 0 19
  • 1、MySQL啟動和關(guān)閉(安裝及配置請參照百度經(jīng)驗,這里不再記錄。MySQL默認端口號:3306;默認數(shù)據(jù)類型格式...
    強壯de西蘭花閱讀 761評論 0 1
  • 你好嗎?好久不見了,在盛夏的星空里,想告訴你:“我想你了”。 200多公里是我們的距離,不遠不近。而那時的我們,最...
    歲月神偷21閱讀 233評論 0 1
  • 十番顯見----見性 能體會這篇內(nèi)容,那么就真的是在修行的道上了 見性就是覺性,也叫真心,也叫佛性。 明心見性是修...
    愛璇_語閱讀 1,184評論 0 4
  • 《這樣讀書就夠了》趙周 001你有生存余力嗎 生存余力=生存力量÷生存負載。生存力量指物質(zhì)條件和個人能力。生存負載...
    天使多肉閱讀 220評論 0 0

友情鏈接更多精彩內(nèi)容