創(chuàng)建數(shù)據(jù)庫(kù)
成都創(chuàng)新互聯(lián)是一家專業(yè)提供江南企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站制作、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為江南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
-- 指定數(shù)據(jù)庫(kù)名稱
-- (注:如果數(shù)據(jù)庫(kù)名中包含空格可以使用[]將其標(biāo)示)
create database [Super WC]
-- 關(guān)于數(shù)據(jù)文件的定義
on
(
name = Super_WC_Data, -- 邏輯名
filename = 'C:\Super_WC_Data.MDF', -- 物理路徑以及物理名
size = 2MB, -- 初始大小
maxsize = 4MB, -- 最大限制
filegrowth = 1MB -- 增長(zhǎng)大小
)
-- 關(guān)于日志文件的定義
log on
(
name = Super_WC_Log,
filename = 'C:\Super_WC_Log.LDF',
size = 3MB,
maxsize = 7MB,
filegrowth = 20% -- 增長(zhǎng)比例
)-- 附加數(shù)據(jù)庫(kù)
execute sp_attach_db '[Super WC]', 'C:\Super_WC_Data.MDF','C:\Super_WC_Log.LDF'
-- 分離數(shù)據(jù)庫(kù)
execute sp_detach_db '[Super WC]'
-- 復(fù)制數(shù)據(jù)庫(kù)
execute master.dbo.xp_cmdshell 'copy C:\Super_WC_Data.MDF D:\Super_WC_Data.MDF'
execute master.dbo.xp_cmdshell 'copy C:\Super_WC_Log.LDF D:\Super_WC_Log.LDF'
(1)創(chuàng)建數(shù)據(jù)表創(chuàng)建一個(gè)數(shù)據(jù)表:學(xué)生(students)
結(jié)構(gòu)如下:
字段 類型 是否允許為空 約束 備注
no char(4) No 主鍵 學(xué)號(hào)name nvarchar(8) No 唯一 姓名birthday datetime No 檢查(至少18年前) 生日age tinyint No 缺省(默認(rèn)等于當(dāng)前時(shí)間減去生日) 年齡sex nchar(1) No 缺?。J(rèn)'女') 性別phone char(11) Yes 檢查(要么沒(méi)有,要么長(zhǎng)度等于11) 電話address nvarchar(24)No 地址沒(méi)有特別約束的情況:
create table student
(
no char(4) not null,
name nvarchar(8) not null,
birthday datetime not null,
phone char(11) null,
address nvarchar(24) null
)注意:沒(méi)有特別約束的情況下,創(chuàng)建數(shù)據(jù)表可以參考“企業(yè)管理器”中“設(shè)計(jì)表”的操作格式!包含約束的情況:
create table students
(
no char(4) primary key,
name nvarchar(8) unique,
birthday datetime check(datediff(year, birthday, getdate()) = 18),
age as datediff(year, birthday, getdate()),
sex nchar(1) default('女') check(sex = '女' or sex = '男'),
phone char(11) check((phone is null) or (len(phone) = 11)),
address nvarchar(24)
)
create table scores
(
no char(4) foreign key references students(no),
chinese numeric(4,1) check(chinese = 0 and chinese = 100),
english numeric(4,1) check(english = 0 and english = 100) ) 這個(gè)建庫(kù) 建表 建約束都有的 忘采納!
直接用SQL語(yǔ)言的create語(yǔ)句創(chuàng)建即可。
在MySQL提示中輸入命令之前,請(qǐng)記住所有的命令都是以分號(hào)結(jié)束的(否則將不會(huì)執(zhí)行)。另外,考慮輸入命令的時(shí)候使用大些字母,輸入數(shù)據(jù)庫(kù)對(duì)象使用小寫字母。但那不是必須的,只是方便你的閱讀。
現(xiàn)在,讓我們創(chuàng)建一個(gè)叫做xmodulo_DB的數(shù)據(jù)庫(kù):
mysql CREATE DATABASE IF NOT EXISTS xmodulo_DB;
1,
mysql
-uroot
-pxxxx
//登陸數(shù)據(jù)庫(kù)
2,
show
databases;
//查看數(shù)據(jù)庫(kù),例如要在test庫(kù)中建表
3,
use
test;//進(jìn)入test
4,
create
table
users(
//例如要建立users表,下面是建立字段
5,
id
int(10)
unsigned
not
null
auto_increment,
6,
username
varchar(20)
not
null,
7,
userpassword
varchar(20)
not
null,
8,
varchar(20)
not
null,
9,
primary
key
(id));
//這樣就建立好了一個(gè)基本完整的表了
注:我的運(yùn)行環(huán)境是widnows xp professional + MySQL5.0
一, 創(chuàng)建用戶:
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說(shuō)明:username - 你將創(chuàng)建的用戶名, host -
指定該用戶在哪個(gè)主機(jī)上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠(yuǎn)程主機(jī)登陸,可以使用通配符%.
password - 該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務(wù)器.
例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
二,授權(quán):
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
說(shuō)明: privileges - 用戶的操作權(quán)限,如SELECT , INSERT , UPDATE 等(詳細(xì)列表見(jiàn)該文最后面).如果要授予所的權(quán)限則使用ALL.;databasename - 數(shù)據(jù)庫(kù)名,tablename-表名,如果要授予該用戶對(duì)所有數(shù)據(jù)庫(kù)和表的相應(yīng)操作權(quán)限則可用*表示, 如*.*.
例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
注意:用以上命令授權(quán)的用戶不能給其它用戶授權(quán),如果想讓該用戶可以授權(quán),用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
三.設(shè)置與更改用戶密碼
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是當(dāng)前登陸用戶用SET PASSWORD = PASSWORD("newpassword");
例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
四.撤銷用戶權(quán)限
命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
說(shuō)明: privilege, databasename, tablename - 同授權(quán)部分.
例子: REVOKE SELECT ON *.* FROM 'pig'@'%';
注意: 假如你在給用戶'pig'@'%'授權(quán)的時(shí)候是這樣的(或類似的):GRANT SELECT ON test.user TO 'pig'@'%', 則在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤銷該用戶對(duì)test數(shù)據(jù)庫(kù)中user表的SELECT 操作.相反,如果授權(quán)使用的是GRANT SELECT ON *.* TO 'pig'@'%';則REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤銷該用戶對(duì)test數(shù)據(jù)庫(kù)中user表的Select 權(quán)限.
具體信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.
五.刪除用戶
命令: DROP USER 'username'@'host';
第一步:登陸到MySQL服務(wù)器
首先,你需要使用root用戶登陸進(jìn)你的MySQL數(shù)據(jù)庫(kù),如下:
$ mysql -u root -h -p
請(qǐng)注意:為了能登進(jìn)遠(yuǎn)程的MySQL服務(wù)器,你需要開啟服務(wù)器上的遠(yuǎn)程訪問(wèn),如果你想調(diào)用同一主機(jī)上的MySQL服務(wù)器,你可以省略 "-h " 參數(shù)
$ mysql -u root -p
你將需要輸入MySQL服務(wù)器的密碼,如果認(rèn)證成功,MySQL提示將會(huì)出現(xiàn)。
第二步:創(chuàng)建一個(gè)MySQL數(shù)據(jù)庫(kù)
在MySQL提示中輸入命令之前,請(qǐng)記住所有的命令都是以分號(hào)結(jié)束的(否則將不會(huì)執(zhí)行)。另外,考慮輸入命令的時(shí)候使用大些字母,輸入數(shù)據(jù)庫(kù)對(duì)象使用小寫字母。但那不是必須的,只是方便的閱讀。
現(xiàn)在,創(chuàng)建一個(gè)叫做xmodulo_DB的數(shù)據(jù)庫(kù):
mysql CREATE DATABASE IF NOT EXISTS xmodulo_DB;
第三步:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表
為了達(dá)到演示的目的,創(chuàng)建一個(gè)叫做posts_tbl的表,表里會(huì)存儲(chǔ)關(guān)于文章的如下信息:
文章的標(biāo)題
作者的名字
作者的姓
文章可用或者不可用
文章創(chuàng)建的日期
這個(gè)過(guò)程分兩步執(zhí)行:
首先,選擇需要使用的數(shù)據(jù)庫(kù):
mysql USE xmodulo_DB;
第四步:創(chuàng)建一個(gè)用戶,并授予權(quán)限
當(dāng)涉及到訪問(wèn)新創(chuàng)的數(shù)據(jù)庫(kù)和表的時(shí)候,創(chuàng)建一個(gè)新用戶是一個(gè)很好的主意。這樣做就可以讓用戶在沒(méi)有整個(gè)MySQL服務(wù)器權(quán)限的情況下,去訪問(wèn)那個(gè)數(shù)據(jù)庫(kù)(而且只能是那個(gè)數(shù)據(jù)庫(kù))
你可以創(chuàng)建新用戶,授予權(quán)限,并且使改變生效:
mysql GRANT ALL PRIVILEGES ON xmodulo_DB.* TO 'new_user'@'%' IDENTIFIED
BY 'new_password';
mysql FLUSH PRIVILEGES;
'newuser'和'newpassword'分別指的是新的用戶名和他的密碼。這條信息將會(huì)被保存在mysql.user表中,而且密碼會(huì)被加密。
第五步:測(cè)試
先插入一個(gè)虛擬的記錄到posts_tbl表:
mysql USE xmodulo_DB;
mysql INSERT INTO posts_tbl (content, author_FirstName, author_Las
tName)
VALUES ('Hi! This is some dummy text.', 'Gabriel', 'Canepa');
然后查看posts_tbl表中的所有記錄:
mysql SELECT * FROM posts_tbl;