Mysql資料庫 資料庫 資料庫【按照數據結構來組織、存儲和管理數據的倉庫】。是一個長期存儲在電腦內的、有組織的、可共用的、統一管理的大量數據的集合。 數據對於公司來說最寶貴的財富,程式員的工作就是對數據進行管理,包括運算、流轉、存儲、展示等,資料庫最重要的功能就是【存儲數據】,長期保存數據。 M ...
Mysql資料庫
資料庫
- 資料庫【按照數據結構來組織、存儲和管理數據的倉庫】。是一個長期存儲在電腦內的、有組織的、可共用的、統一管理的大量數據的集合。
- 數據對於公司來說最寶貴的財富,程式員的工作就是對數據進行管理,包括運算、流轉、存儲、展示等,資料庫最重要的功能就是【存儲數據】,長期保存數據。
Mysql
- MySQL是一個【關係型資料庫管理系統】,瑞典的公司研發,被【Oracle】收購。
- MySQL使用了一種語言【SQL語言】。
- MySQL分為社區版和商業版,體積小、速度快、成本低,開源。
登錄mysql :
mysql -h 127.0.0.1 -p3306 -uroot -p
當是在本地登錄時
`` sql
mysql -uroot -p
```
創建一個資料庫:
create database 資料庫名;
create schema 資料庫名;
查看所有的資料庫
show databases
使用資料庫
use 資料庫名;
表
用來存儲數據的對象,是有結構的數據的集合。
- 行:一行即為一條數據,資料庫一共有多少條數據,實際上就是有幾行數據。
- 列:一列即為一個欄位,資料庫一共有多少個欄位,實際上就是有幾列數據。
SQL語言
1.什麼是SQL?
Structured Query Language:結構化查詢語言
SQL是一種特殊目的的編程語言,是一種資料庫查詢和程式設計語言,用於存儲數據以及查詢、更新和管理關係型資料庫系統。
2.SQL通用語法
1. SQL 語句可以單行或多行書寫,以分號結尾。
2. 可使用空格和縮進來增強語句的可讀性。
3. MySQL 資料庫的 SQL 語句不區分大小寫,關鍵字建議使用大寫。
4. 3 種註釋
* 單行註釋: -- 註釋內容 或 # 註釋內容(mysql 特有)
* 多行註釋: /* 註釋 */
3. SQL分類
- DDL(Data Definition Language)數據定義語言
用來定義資料庫對象:資料庫,表,列等。關鍵字:create, drop,alter 等 - DML(Data Manipulation Language)數據操作語言
用來對資料庫中表的數據進行增刪改。關鍵字:insert, delete, update 等 - DQL(Data Query Language)數據查詢語言
用來查詢資料庫中表的記錄(數據)。關鍵字:select, where 等 - DCL(Data Control Language)數據控制語言(瞭解)
用來定義資料庫的訪問許可權和安全級別,及創建用戶。關鍵字:GRANT, REVOKE 等
DDL:操作資料庫、表
創建表
create table 表名(
欄位名1 類型(長度)約束條件;
欄位名2 類型(長度)約束條件;
欄位名3 類型(長度)約束條件;
.........
);
建表約束
因為一張表要有多個列,資料庫中的表不止有一張,建表約束說的就是我們 應該如何規範表中的數據以及表之間的關係。
|MySQL約束類型:
約束名稱 | 描述 |
---|---|
NOT NULL | 非空約束 |
UNIQUE | 唯一約束,取值不允許重覆 |
PRIMARY KEY | 主鍵約束(主關鍵字),自帶非空,唯一、索引 |
DEFAULT | 預設值 |
FOREIGH KEY | 外鍵約束,表和表之間的約束 |
(1)NOT NULL約束
CREATE TABLE `student` (
`stu_id` int,
`stu_name` VARCHAR(50) NOT NULL,
`gender` char(1) DEFAULT '男',
`brithday` datetime,
PRIMARY KEY(stu_id)
);
(2)UNIQUE
create table `book` (
`id` int PRIMARY KEY auto_increment,
`name` varchar(50) not null,
`bar_code` VARCHAR(30) not null,
`aut_id` int not null,
UNIQUE(bar_code)
);
(3)主鍵約束 用多個列來共同當主鍵
create table `author`(
`aut_id` int,
`aut_name` varchar(50) not null,
`gender` char(1) default '男',
`country` varchar(50),
`birthday` datetime,
PRIMARY KEY(aut_id,aut_name)
);
(4)外鍵約束 推薦配合主鍵去使用。有了這個約束,我們在向表中插入數據時,來源於另外一張表的主鍵
外鍵會產生的效果:
- 刪除表的時候,如果不刪除引用外鍵的表,被引用的表是不能直接刪除。
- 外鍵的值必須來源於引用的表的主鍵字元。
create table `author`(
`aut_id` int,
`aut_name` varchar(50) not null,
`gender` char(1) default '男',
`country` varchar(50),
`birthday` datetime,
PRIMARY KEY(aut_id)
);
create table `book` (
`id` int PRIMARY KEY auto_increment,
`name` varchar(50) not null,
`bar_code` VARCHAR(30) not null UNIQUE,
`aut_id` int not null,
FOREIGN KEY(aut_id) REFERENCES author(aut_id)
);
對錶的修改操作
查看當前資料庫的所有表:
show tables;
查看表結構:
desc 表名;
修改表的五個操作
首碼都是 alter table 表名 -----
添加列 alter table 表名 add(欄位名1 類型 , 欄位名2 類型2 ····· ) ;
修改列數據類型:
alter table author MODIFY address varchar(100);
修改列名稱和數據類型 將address 改為 addr
alter table author change address addr VARCHAR(60);
刪除列 作者表 addr欄位
alter table author drop addr;
修改表名
ALTER TABLE author RENAME `authors`;
刪除表
drop table if EXISTS `user`;
DML(數據操作語言)
該語言來對錶記錄進行操作(增、刪、改),不包含查詢。
插入數據:
intsert into 表名 (欄位1,欄位2 ,欄位3)values( 1,2,3 );
INSERT INTO `authors` ( aut_id, aut_name, gender, country, birthday, hobby ) VALUES (4,'羅曼羅蘭','女','漂亮國','1945-8-15','寫字');
如果插入的是全欄位,欄位名可以省略。
INSERT INTO `authors` VALUES (5,'韓寒','男','中國','1984-8-15','賽車');
批量插入:
INSERT INTO `authors` VALUES
(7,"李誕",'男','中國','1985-8-15','脫口秀'),
(8,"史鐵生",'男','中國','1967-8-15','繪畫');
修改數據
update 表名 set 欄位1 = 修改的值 ,欄位1 = 修改的值 where 條件
update `authors` set aut_name = '金庸',country='中國' where aut_id = 1;
刪除數據
delete from `authors` where aut_id = 8;
截斷(清空表)
TRUNCATE student;
說明:
truncate實際上應該屬於DDL語言,操作立即生效,不能撤回。
- truncate和delete都是刪除數據,drop刪除整個表。
- truncate速度快,效率高,可以理解為直接刪除整個表,再重新建立。
- truncate和delete都不會是表結構及其列、約束、索引的發生改變。
本文來自博客園,作者:阿薩德菩提子,轉載請註明原文鏈接:https://www.cnblogs.com/ychptz/p/16589323.html