mysql的安裝可見: http://www.cnblogs.com/wenbronk/p/6840484.html
很久不用mysql, 今天建表都不會了, , ,
慢慢補充
sql語言分為3種: DDL, DML, DCL
DML(data manipulation language)是數據操縱語言:它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對數據庫里的數據進行操作的語言。
DDL(data definition language)是數據定義語言:DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,數據類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用。
DCL(DataControlLanguage)是數據庫控制語言:是用來設置或更改數據庫用戶或角色權限的語句,包括(grant,deny,revoke等)語句。
DDL
ddl的操作主要是針對數據庫和數據表的
CREATE:用於創建數據庫對象。
DECLARE:除了是創建只在過程中使用的臨時表外,DECLARE語句和CREATE語句非常相似。唯一可以被聲明的對象是表。並且必須放入用戶臨時表空間。
DROP:可以刪除任何用CREATE(數據庫對象)和DECLARE(表)創建的對象。
ALTER:允許修改某些數據庫對象的信息。不能修改索引。
1, 對數據庫的操作
1, 創建數據庫
create database test;
create database test character set utf-8; # 設置編碼
2, 查看數據庫
show databases;
3, 使用數據庫
use test;
4, 查看當前使用的數據庫
select database();
5, 查看數據庫結構
show create database test;
6, 刪除數據庫
drop database test;
2, 對數據表的操作
1, 建表, 格式: 列名 數據類型(長度) (約束)
create table sys_user( id int(4) not null primary key auto_increment, name char(20) not null, sex int(4) not null default '0', degree double(16,2),
unique name_index(sys_user) # 創建name的唯一索引
);
建表一般預留3列, 為varchar類型, 具體看需求
2, 查詢表
show sys_user; # 顯示當前庫下的表
desc sys_user; # 顯示表結構
show create table sys_user; #
3, 刪除表
drop table sys_user;
4, 數據備份 (小數據量)
create table new_user select * from sys_user;
5, 修改表結構
# 修改表名 rename table sys_user to new_user; # 添加列 alter table sys_user add addre varchar(32) not null; # 修改列名 alter table sys_user change sex new_sex; # 修改列類型 alter table sys_user modify addre varchar(64); # 刪除列 alter table sys_user drop sex;
3, 索引操作
詳細見: http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html
# 創建索引
create index name_index on sys_user(name);
# 創建唯一索引
create unique index name_index on sys_user(name);
alter table sys_user add unique name_index(sys_user);
# 刪除索引
drop index name_index on sys_user;
#查看索引
show index from sys_user;
DML
dml主要是針對數據的操作, 主要分為4大類, CRUD操作
1, 增
insert into 表名 (列1, 列2..) values ( 值1, 值2) # 一一對應即可
insert into 表名 values (值1, 值2, ..) # 和表的列一一對應
2, 刪
delete from 表名; # 刪除表中所有數據, auto_increment不會重置 # 加上where子句, 條件刪除 delete from 表名 where money > 100 and money < 500;
3, 改
update sys_user set name='vini', sex='woman' where id=1; # 不加where子句, 會全部修改
4, 查
select u.username, u.password from user u;
5, 聚合查詢 ( 縱向查詢, 不統計null值)
# count select count(name) as '總數' from sys_user select count(DISTINCT(name)) as '總數' from sys_user; # 使用distinct函數去重 # sum select sun(IS NULL(num)) from sys_user; # 使用 is null 去除為null的 #max, min, avg select max(money) from sys_user;
6, where 子句
比較運算符: >, < >=, <=, !=(<>) 邏輯運算符: and, or, not 在范圍內: between..and.. 指定值: in(值1, 值2, 值3) 模糊匹配: like null: is not null 不為空 select * from sys_user where money > 100 and addr like '%北京%' or money between 80 and 90;
7, 分組
group by
having: 只在在group by后面, 分組后對結果再次過濾
8, 排序
order by
更改編碼集