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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/501951.html
標籤:MySQL
