mysql列别_MySQL基础及CRUD
大綱
1. 數據庫的基本概念
2. MySQL數據庫軟件
1. 安裝
2. 卸載
3. 配置
3. SQL
1) DDL(Data Definition Language)數據定義語言
2) DML(Data Manipulation Language)數據操作語言
3) DQL(Data Query Language)數據查詢語言
4) DCL(Data Control Language)數據控制語言(了解)
數據庫的基本概念
1. 數據庫的英文單詞: DataBase 簡稱 : DB
2. 什么數據庫?
* 用于存儲和管理數據的倉庫。
3. 數據庫的特點:
1. 持久化存儲數據的。其實數據庫就是一個文件系統
2. 方便存儲和管理數據
3. 使用了統一的方式操作數據庫 -- SQL
4. 常見的數據庫軟件
* 參見《MySQL基礎.pdf》
MySQL數據庫軟件
1. 安裝
* 參見《MySQL基礎.pdf》
2. 卸載
1. 去mysql的安裝目錄找到my.ini文件
* 復制 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
2. 卸載MySQL
3. 刪除C:/ProgramData目錄下的MySQL文件夾。
3. 配置
* MySQL服務啟動
1. 手動。
2. cmd--> services.msc 打開服務的窗口
3. 使用管理員打開cmd
* net start mysql : 啟動mysql的服務
* net stop mysql:關閉mysql服務
* MySQL登錄
1. mysql -uroot -p密碼
2. mysql -hip -uroot -p連接目標的密碼
如 mysql -h127.0.0.1 -uroot -proot
3. mysql --host=ip --user=root --password=連接目標的密碼
如 mysql --host=127.0.0.1 --user=root --password=root
* MySQL退出
1. exit
2. quit
* MySQL目錄結構
1. MySQL安裝目錄:basedir="F:\mysql"
* 配置文件 my.ini
2. MySQL數據目錄:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
* 幾個概念
* 數據庫:文件夾
* 表(frm):文件
* 數據:數據
SQL
1.什么是SQL?
Structured Query Language:結構化查詢語言
其實就是定義了操作所有關系型數據庫的規則。每一種數據庫操作的方式存在不一樣的地方,稱為“方言”。
2.SQL通用語法
1. SQL 語句可以單行或多行書寫,以分號結尾。
2. 可使用空格和縮進來增強語句的可讀性。
3. MySQL 數據庫的 SQL 語句不區分大小寫,關鍵字建議使用大寫。
4. 3 種注釋
* 單行注釋: -- 注釋內容 或 # 注釋內容(mysql 特有)
* 多行注釋: /* 注釋 */
3. SQL分類
1) DDL(Data Definition Language)數據定義語言
用來定義數據庫對象:數據庫,表,列等。關鍵字:create, drop, alter 等
2) DML(Data Manipulation Language)數據操作語言
用來對數據庫中表的數據進行增刪改。關鍵字:insert, delete, update 等
3) DQL(Data Query Language)數據查詢語言
用來查詢數據庫中表的記錄(數據)。關鍵字:select, where 等
4) DCL(Data Control Language)數據控制語言(了解)
用來定義數據庫的訪問權限和安全級別,及創建用戶。關鍵字:GRANT, REVOKE 等
DDL:操作數據庫、表
1. 操作數據庫:CRUD
1. C(Create):創建
* 創建數據庫:
* create database 數據庫名稱;
* 創建數據庫,判斷不存在,再創建:
* create database if not exists 數據庫名稱;
* 創建數據庫,并指定字符集
* create database 數據庫名稱 character set 字符集名;
* 練習: 創建db4數據庫,判斷是否存在,并制定字符集為gbk
* create database if not exists db4 character set gbk;
2. R(Retrieve):查詢
* 查詢所有數據庫的名稱:
* show databases;
information_schema描述數據庫的信息,視圖
* 查詢某個數據庫的字符集:查詢某個數據庫的創建語句
* show create database 數據庫名稱;
3. U(Update):修改
* 修改數據庫的字符集
* alter database 數據庫名稱 character set 字符集名稱;
4. D(Delete):刪除
* 刪除數據庫
* drop database 數據庫名稱;
* 判斷數據庫存在,存在再刪除
* drop database if exists 數據庫名稱;
5. 使用數據庫
* 查詢當前正在使用的數據庫名稱
* select database();
* 使用數據庫
* use 數據庫名稱;
2. 操作表
1. C(Create):創建
1. 語法:
create table 表名(
列名1 數據類型1,
列名2 數據類型2,
....
列名n 數據類型n
);
* 注意:最后一列,不需要加逗號(,)
* 數據庫類型:
1. int:整數類型
* age int,
2. double:小數類型
* score double(5,2)
3. date:日期,只包含年月日,yyyy-MM-dd
4. datetime:日期,包含年月日時分秒 yyyy-MM-dd HH:mm:ss
5. timestamp:時間錯類型包含年月日時分秒 yyyy-MM-dd HH:mm:ss
* 如果將來不給這個字段賦值,或賦值為null,則默認使用當前的系統時間,來自動賦值
6. varchar:字符串
* name varchar(20):姓名最大20個字符
* zhangsan 8個字符 張三 2個字符
* 創建表
create table student(
id int,
name varchar(32),
age int ,
score double(4,1),
birthday date,
insert_time timestamp
);
* 復制表:
* create table 表名 like 被復制的表名;
2. R(Retrieve):查詢
* 查詢某個數據庫中所有的表名稱
* show tables;
* 查詢表結構
* desc 表名;
3. U(Update):修改
1. 修改表名
alter table 表名 rename to 新的表名;
2. 修改表的字符集
alter table 表名 character set 字符集名稱;
3. 添加一列
alter table 表名 add 列名 數據類型;
4. 修改列名稱 類型
alter table 表名 change 列名 新列別 新數據類型;
alter table 表名 modify 列名 新數據類型;
5. 刪除列
alter table 表名 drop 列名;
4. D(Delete):刪除
* drop table 表名;
* drop table if exists 表名 ;
客戶端圖形化工具:SQLYog
DML:增刪改表中數據
1. 添加數據:
* 語法:
* insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
例:INSERT INTO USER VALUES(2,'李問天','男',21,'北京','456','lwt@zzz.com','liwentian','234');
* 注意:
1. 列名和值要一一對應。
2. 如果表名后,不定義列名,則默認給所有列添加值
insert into 表名 values(值1,值2,...值n);
3. 除了數字類型,其他類型需要使用引號(單雙都可以)引起來
2. 刪除數據:
* 語法:
* delete from 表名 [where 條件]
* 注意:
1. 如果不加條件,則刪除表中所有記錄。
2. 如果要刪除所有記錄
1. delete from 表名; -- 不推薦使用。有多少條記錄就會執行多少次刪除操作
2. TRUNCATE TABLE 表名; -- 推薦使用,效率更高 先刪除表,然后再創建一張一樣的表。
3. 修改數據:
* 語法:
* update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 條件];
* 注意:
1. 如果不加任何條件,則會將表中所有記錄全部修改。
DQL:查詢表中的記錄
* select * from 表名;
1. 語法:
select
字段列表
from
表名列表
where
條件列表
group by
分組字段
having
分組之后的條件
order by
排序
limit
分頁限定
2. 基礎查詢
1. 多個字段的查詢
select 字段名1,字段名2... from 表名;
* 注意:
* 如果查詢所有字段,則可以使用*來替代字段列表。
2. 去除重復:
* distinct
3. 計算列
* 一般可以使用四則運算計算一些列的值。(一般只會進行數值型的計算)
* ifnull(表達式1,表達式2):null參與的運算,計算結果都為null
* 表達式1:哪個字段需要判斷是否為null
* 如果該字段為null后的替換值。
4. 起別名:
* as:as也可以省略
3. 條件查詢
1. where子句后跟條件
2. 運算符
* > 、< 、<= 、>= 、= 、<>
* BETWEEN...AND
* IN( 集合)
* LIKE:模糊查詢
* 占位符:
* _:單個任意字符
* %:多個任意字符
* IS NULL
* and 或 &&
* or 或 ||
* not 或 !
-- 查詢年齡大于20歲
SELECT * FROM student WHERE age > 20;
SELECT * FROM student WHERE age >= 20;
-- 查詢年齡等于20歲
SELECT * FROM student WHERE age = 20;
-- 查詢年齡不等于20歲
SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;
-- 查詢年齡大于等于20 小于等于30
SELECT * FROM student WHERE age >= 20 && age <=30;
SELECT * FROM student WHERE age >= 20 AND age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
-- 查詢年齡22歲,18歲,25歲的信息
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);
-- 查詢英語成績為null
SELECT * FROM student WHERE english = NULL; -- 不對的。null值不能使用 = (!=) 判斷
SELECT * FROM student WHERE english IS NULL;
-- 查詢英語成績不為null
SELECT * FROM student WHERE english IS NOT NULL;
-- 查詢姓馬的有哪些? like
SELECT * FROM student WHERE NAME LIKE '馬%';
-- 查詢姓名第二個字是化的人
SELECT * FROM student WHERE NAME LIKE "_化%";
-- 查詢姓名是3個字的人
SELECT * FROM student WHERE NAME LIKE '___';
-- 查詢姓名中包含德的人
SELECT * FROM student WHERE NAME LIKE '%德%';
示例數據庫
CREATE TABLE student(
id INT, -- 編號
NAME VARCHAR(20),-- 姓名
age INT, -- 年齡
sex VARCHAR(5),-- 性別
address VARCHAR(100),-- 地址
math INT,-- 數學
english INT-- 英語
);
INSERT INTO student(id,NAME,age,sex,address,math,english)VALUES(1,'馬云',55,'男',
'杭州',66,78),(2,'馬化騰',45,'女','深圳',98,87),(3,'馬景濤',55,'男','香港',56,77),
(4,'柳巖',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),
(6,'劉德華',57,'男','香港',99,99),(7,'馬德',22,'女','香港',99,99),
(8,'德瑪西亞',18,'男','南京',56,65);
?
總結
以上是生活随笔為你收集整理的mysql列别_MySQL基础及CRUD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql unescape解码_PHP
- 下一篇: java putnextentry_Ja