mysql 即学a又学b_MySQL学习第一天
一、 數(shù)據(jù)庫(kù):
*學(xué)習(xí)重點(diǎn):創(chuàng)建數(shù)據(jù)庫(kù)/向表添加記錄/查詢記錄
數(shù)據(jù)庫(kù)概念:文件系統(tǒng)(存儲(chǔ)和管理)
數(shù)據(jù)庫(kù)軟件介紹:Oracle/MySQL/SQL server…
分類:
關(guān)系型數(shù)據(jù)庫(kù):關(guān)系模型組織數(shù)據(jù)
非關(guān)系型數(shù)據(jù)庫(kù):鍵值對(duì)關(guān)系存儲(chǔ)
二、 mysql數(shù)據(jù)的存儲(chǔ)方式:
一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器中會(huì)創(chuàng)建很多個(gè)數(shù)據(jù)庫(kù)(一個(gè)項(xiàng)目會(huì)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù))
在數(shù)據(jù)庫(kù)中會(huì)創(chuàng)建很多張表(一個(gè)實(shí)體會(huì)創(chuàng)建一個(gè)表)
在表中會(huì)有很多記錄(一個(gè)對(duì)象的實(shí)例會(huì)添加一條新的記錄)
三、 數(shù)據(jù)庫(kù)中表和Java中類的對(duì)應(yīng)關(guān)系:
數(shù)據(jù)庫(kù)中以表的方式存儲(chǔ)數(shù)據(jù),類似于Java中的類,每個(gè)字段會(huì)有相應(yīng)的數(shù)據(jù)類型;
表名 – Java類
表中的字段 – 類中的屬性
表中的記錄 – 類創(chuàng)建的對(duì)象
瀏覽器 — Web服務(wù)器 — 數(shù)據(jù)庫(kù)服務(wù)器
用戶 項(xiàng)目
四、 SQL: (結(jié)構(gòu)化查詢語(yǔ)言:Structure Query Language)
1)概述:定義了操作所有關(guān)系型數(shù)據(jù)庫(kù)的規(guī)則;
2)SQL通用語(yǔ)法:
1.語(yǔ)句以分號(hào)結(jié)尾
2.空格和TAB增加可讀性
3.不區(qū)分大小寫,關(guān)鍵字用大小寫
4.三種注釋; a. -- (通用) b. # (mysql特有) c. /* */
3)SQL分類: (了解)
DDL(Database Definition Language): 操作數(shù)據(jù)庫(kù)/表
DML(Database Manipulation Language): 增刪改表中的數(shù)據(jù)
**DQL(Database Query Language):查詢表中的數(shù)據(jù)
DCL(Database Control Language): 授權(quán)
五、 DDL: (Definition)操作數(shù)據(jù)庫(kù)/表
1) 操作數(shù)據(jù)庫(kù) (CRUD)
1. Create:創(chuàng)建
create database 庫(kù)名; 創(chuàng)建數(shù)據(jù)庫(kù)
create database 庫(kù)名; 創(chuàng)建數(shù)據(jù)庫(kù)
create database if not exists 庫(kù)名;
create database 庫(kù)名 character set 字符集名;
create database if not exists 庫(kù)名 character set 字符集名;
2. Retrieve:查詢
show databases; 查看所有數(shù)據(jù)庫(kù);
show create database 庫(kù)名;查看指定數(shù)據(jù)庫(kù)的字符集(創(chuàng)建語(yǔ)句)
3. Update:修改
alter database 庫(kù)名 character set 字符集名;
4. Delete:刪除 (慎用)
drop database 庫(kù)名;
drop database if exists 庫(kù)名;
5. 使用數(shù)據(jù)庫(kù)
use 庫(kù)名; (不加database)
select database();?查看正在使用的數(shù)據(jù)庫(kù);
2) 操作表 (CRUD)
1. Create:創(chuàng)建
create table 表名 (列名1 數(shù)據(jù)類型1, 列名2 數(shù)據(jù)類型2…);
注意: 1.加() 2.最后一列不要逗號(hào)
常見(jiàn)數(shù)據(jù)類型:
數(shù)值類型:
int: 整數(shù) eg: age int;
double(m,n):小數(shù)
eg:score double(5,2);五位小數(shù),保留兩位;
字符串類型 :
varchar(len):字符串(長(zhǎng)度可變) 格式:varchar(字符串長(zhǎng)度)
char:字符串(長(zhǎng)度固定)
示例: zhangsan 8個(gè)字符 張三 2個(gè)字符
日期類:
time(HH-mm-ss):時(shí)間
date: 日期 格式: yyyy-MM-dd eg:19960227 /1996-02-27
datetime:日期
格式: yyyy-MM-dd HH:mm:ss eg:19960227052013
注意: 如果沒(méi)有存值,則默認(rèn)為 Null
timestamp:時(shí)間戳 (stamp郵票)
注意: 沒(méi)有存值,默認(rèn)系統(tǒng)時(shí)間;
//示例:
create table student(
id int,
name varchar(30),
score double(5,2),
birthday date(yyyy-MM-dd),
insert_time timestamp
)
2. Retrieve:查詢
show tables; – 查詢所有的表; (并沒(méi)有show table 表名;語(yǔ)句)
show create table 表名; – 查看創(chuàng)建表的詳細(xì)信息
describe 表名;–查詢表結(jié)構(gòu);
3. Update:修改 (八太重要)
a) 修改表名
alter table 表名rename to 新表名; – 修改表名
alter table 表名 character set 字符集名;–修改表的字符集
b) 添加一列:
alter table表名 add 列名 數(shù)據(jù)類型; – 添加新字段
c) 修改列的名稱/類型
alter table 表名 change 列名 新列名 新數(shù)據(jù)類型;–修改指定的字段
alter table 表名 modify 列名 新數(shù)據(jù)類型;–修改字段的數(shù)據(jù)類型
d) 刪除列
alter table 表名 drop 列名; 刪除表的字段
4. Delete:刪除表
drop table 表名;
drop table if exists 表名;
六、 DML: (Manipulation)增刪改表中數(shù)據(jù)
添加數(shù)據(jù):
insert into 表名 (列名1,列名2…) value (值1,值2…);
insert into 表名 value (值1,值2…); – 給所有列添加數(shù)據(jù)
注意:
1.列名和值要一一對(duì)應(yīng)
2.如果不定義列名,默認(rèn)給所有列添加值,寫的時(shí)候就要寫全,不然報(bào)錯(cuò);
問(wèn)題:
在命令窗口添加中文數(shù)據(jù)時(shí),會(huì)報(bào)錯(cuò);編碼問(wèn)題;
SHOW VARIABLES LIKE ‘%character_set_%’;模糊查詢變量字符串的設(shè)置
刪除數(shù)據(jù):
delete from 表名 where 條件; ?按條件刪除數(shù)據(jù)
注意:不加條件,刪除所有記錄; (慎用) 有多少條記錄就會(huì)執(zhí)行多少次操作;
truncate table 表名; (推薦效率高) – 刪除表,再創(chuàng)建一樣的新表;
truncate :vt. 把…截短;縮短;使成平面
修改數(shù)據(jù):
update 表名 set 列名1 = 值1, 列名2 = 值2… where 條件;
注意:不加條件,默認(rèn)修改所有的記錄;
七、 DQL: (Query)查詢表中的記錄
1. 語(yǔ)法
select
字段列表
from
表名列表
where
條件列表
group by
分組字段
having
分組之后的條件限定
order by
排序
limit 分頁(yè)限定
2. 基礎(chǔ)查詢
多個(gè)字段的查詢:
select 列名1,列名2...from 表名; 查詢
select * from 表名; 查詢表中所有數(shù)據(jù)
去重:
select distinct address from student;
計(jì)算列:
select 列名1 + 列名2 from student;
注意:如果有null值參與的運(yùn)算,結(jié)果都是null;
解決:select 列名1 + ifnull(列名2, 0) from student;
ifnull(表達(dá)式1,表達(dá)式2);
表達(dá)式1:那個(gè)字段需要判斷是否為null;
表達(dá)式2:如果是null,則賦值為表達(dá)式2;
起別名:
select 列名 as 新列名 from student; -- as可以省略
3. 條件查詢 ( where )
1.格式: where子句后跟條件
2.運(yùn)算符:
比較運(yùn)算:
< > <= >= = !=
between 數(shù)值1 and 數(shù)值2; -- 在..和..之間
in(數(shù)值1,數(shù)值2...); -- 在..中
is null /is not null ; -- 是否為null
eg: select name,math from student where math is null;
邏輯運(yùn)算:
且: && / and 或: || /or 非: !
4. 模糊查詢: (like)
占位符:
_ :單個(gè)任意字符
% :多個(gè)任意字符
eg:
select *from student where name like '馬%'; -- 第一個(gè)字為馬的人
select *from student where name like '_馬%'; -- 第二個(gè)字為馬的人
select *from student where name like '___'; -- 名字為三個(gè)字的人
select *from student where name like '%橋%'; -- 名字中有橋的人
SELECT *FROM student WHERE NAME LIKE '柳_'; -- 名字為兩個(gè)且姓柳
因?yàn)楸救藙傞_(kāi)始寫博客,時(shí)間有限,沒(méi)有編輯文本.
總結(jié)
以上是生活随笔為你收集整理的mysql 即学a又学b_MySQL学习第一天的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: excel 2007 vba与宏完全剖析
- 下一篇: slickedit自定义代码片段