1.mysql數據存儲結構 1.1由“資料庫”——》“表”——》“數據”組成 1.2管理資料庫需要使用SQL(結構化查詢語言) SQL語言分為: 1 數據查詢語言DQL 按照指定的組合、條件表達式或排序檢索已存在的資料庫中數據,不改變資料庫中數據。 命令:SELECT…FROM…WHERE… 2 數 ...
1.mysql數據存儲結構
1.1由“資料庫”——》“表”——》“數據”組成
1.2管理資料庫需要使用SQL(結構化查詢語言)
SQL語言分為:
1 數據查詢語言DQL
按照指定的組合、條件表達式或排序檢索已存在的資料庫中數據,不改變資料庫中數據。
命令:SELECT…FROM…WHERE…
2 數據操縱語言DML
對已經存在的資料庫進行元組的插入、刪除、修改等操作
命令:INSERT、UPDATE、DELETE
3 數據定義語言DDL
創建、修改或刪除資料庫中各種對象,包括表、視圖、索引等。
命令:CREATE TABLE , CREATE VIEW, CREATE INDEX、ALTER TABLE ,
DROP TABLE , DROP VIEW, DROP INDEX
4 數據控制語言DCL
用來授予或收回訪問資料庫的某種特權、控制數據操縱事務的發生時間及效果、對資料庫進行監視
命令:GRANT、REVOKE、COMMIT、ROLLBACK
2.查詢所有資料庫
通過命令行登錄資料庫,輸入第一個查看資料庫的sql語句
mysql> show databases; --預設顯示4個資料庫
+--------------------+
| Database |
+--------------------+
| information_schema | --mysql元數據,基礎數據
| mysql | --mysql配置資料庫,其中包含用戶信息(用戶名和密碼,許可權管理)
| performance_schema | --mysql資料庫軟體的運行數據,日誌信息,性能數據
| test | --測試資料庫,空資料庫
+--------------------+
3,創建資料庫
3.1 sql語句為:create database 資料庫名稱;
mysql> create database first; --first為資料庫名稱
Query OK, 1 row affected (0.01 sec)
3.2 創建資料庫時設置資料庫的字元
mysql> create database two --此時不需輸入分號,因為分號意味這語句結束,直接回車
-> default character set utf8; --設置預設字元為utf-8
Query OK, 1 row affected (0.00 sec)
3.3 查看資料庫的預設字元集
mysql> show create database first; --first為資料庫名稱
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| first | CREATE DATABASE `first` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
3.4 刪除資料庫
mysql> drop database two; --two為資料庫名稱
Query OK, 0 rows affected (0.17 sec)
3.5 修改資料庫的預設字元集
mysql> alter database first default character set utf8; --修改first資料庫的字元為utf-8
Query OK, 1 row affected (0.00 sec)
4.表管理
4.1選擇資料庫
mysql> use first; --first為資料庫名稱
Database changed
4.2創建表
mysql> create table student( --student為表名稱
-> sid int, --sid為欄位名稱 編號,int是欄位類型 整形
-> sname varchar(20), --sname為欄位名稱 姓名,varchar(20)是欄位類型 字元串長度是20
-> sage int --sage為欄位名稱 年齡,int是欄位類型,整形
-> );
Query OK, 0 rows affected (0.14 sec)
4.3查看所有表
mysql> show tables;
+-----------------+
| Tables_in_first |
+-----------------+
| student |
+-----------------+
1 row in set (0.00 sec)
4.4查看一張表的表結構
mysql> desc student; --student表名稱
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sid | int(11) | YES | | NULL | |
| sname | varchar(20) | YES | | NULL | |
| sage | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)
4.5刪除表
mysql> drop table student;
Query OK, 0 rows affected (0.11 sec)
4.6修改表
mysql> alter table student add column sgender varchar(2); --向student表中增加一個sgender的欄位,column可以省略
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student drop sgender; --刪除student表中sgender這個欄位,column可以省略
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student modify sname varchar(10); --修改student表中sname欄位的類型為varchar(10)
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student change sname newsname varchar(20); --修改student表中sname欄位的名稱,變為newsname
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0