標籤:命令列 mysql
啟動mysql服務:
net start mysql
(使用這個命令啟動mysql,需要把mysql註冊到服務列表中,如果是wamp內建的mysql註冊到服務列表還有點麻煩,如果有高手希望告知一二)
登陸mysql:
mysql -u root -p 斷行符號,輸入密碼。
查看使用者:use mysql 斷行符號,select * from user; 斷行符號。這樣能列出所有使用者,但是比較亂,如果只需要查看使用者名稱、允許登陸的主機,那麼使用 select User,Host from user;
建立使用者:
create user ‘zhangxiansen‘@‘localhost‘ identified by ‘zhangxiansen‘;
如上命令就能建立一個帳號為zhangxiansen,1、密碼為zhangxiansen的使用者,第一個zhangxiansen是帳號,第二個zhangxiansen是密碼;2、@後面的是允許登陸的主機,可以是ip地址、localhost、%,%代表允許任何地方可以登陸,localhost只允許使用localhost登陸,ip地址只能在對應ip的機器上登陸。
使用者授權:
grant all on *.* to ‘zhangxiansen‘@‘localhost‘;
該命令可以給能用localhost登陸的zhangxiansen賬戶授予對所有資料所有表的所有許可權。1、all 代表所有許可權,如果只授予增刪許可權,則用add,delete代替all;2、第一個*代表所有資料庫,如果指定test_data資料庫,則用test_data代替第一個*,第二個*代表所有表,如果指定stu表,則用stu代替第二個*;3、to後面的就是指定授予許可權的使用者,同時還應該指定允許登陸的地址,即@後面的。
(建立使用者以及授權在http://my.oschina.net/u/1179414/blog/202377有很詳細的解釋。)
建立資料:
create database test_data(資料庫名字,自己定義); 斷行符號。
(在建立表之前需要指定在哪個資料庫中建,所以一般需要使用use命令,就像上面use mysql,指定對mysql資料庫進行操作。)
建立表:
create table stu(
stuId int primary key auto_increment, -- primary key設定主鍵,auto_increment設定列自增。
stuName varchar(15) not null,
roomId int
);
create table classRoom(
roomId int primary key auto_increment,
roomName int
);
1、-- 是資料中的注釋;2、在最後一列後面不需要逗號;3、最後的收括弧後面需要加上分號。
修改列屬性:
alter table classRoom modify roomName char(10);
上面我建立classRoom表名字欄位是int型的,我們就可以用modify命令修改。1、classRoom是需要修改列的表;2、roomName需要修改的列。
添加列:
alter table stu add column age int not null;
該命令可以給stu表添加age列。1、stu需要添加列的表,age需要添加的列,後面跟上列的類型(必須)以及各種約束(自選)。
添加外鍵:
alter table stu constrain stu_room foreign key(roomId) references classRoom(roomId); 該命令可以給stu表的roomId添加外鍵約束。1、stu需要添加外鍵約束的表;2、stu_room外鍵名字,自訂;3、第一個roomId是stu表中的列,第二個則是classRoom中的列。添加外鍵還可以在建立表結構的時候就一併建立,例如:
create table desk(
deskId int primary key auto_increment,
roomId int,
constrain desk_room(外鍵名) foreign key(roomId) references classRoom(roomId)
);
這樣同樣可以建立外鍵約束。
建立主鍵:
如上,在id列後面 primary key 可以建立主鍵。如果主鍵有多列,例如:
create table rectangle(
wide int not null,
len int not null,
primary key(wide,len)
);
這樣rectangle表的主鍵就由wide、len列組成。(這僅僅是個例子,意在說明多列主鍵的建立方法,在表結構設計上有問題。)
增刪查改:
insert into classRoom(roomName) values(‘402‘);
該命令就在classRoom表中插入一條資料,roomId是自增長,所以不需要手動插入值。
insert into desk(roomId) values(1);
該命令可以在desk表中插入一條資料,由於roomId是外鍵,那麼在classRoom表中必須要有roomId等於1的資料才能成功插入。
delete from classRoom where roomId=1;
該命令可以在classRoom表中刪除roomId=1的一行資料,由於有外鍵,刪除時可能會影響desk、stu表中的資料,具體可以看一看外鍵的屬性介紹。
update classRoom set roomName=‘403‘ where roomId=1;
如果classRoom表中存在roomId等於1的資料,則該行資料的roomName值將會修改為403。
select * from classRoom where roomId=1;
該命令尋找roomId=1的資料。如果需要指定尋找的列,那麼使用如下命令:
select roomName from classRoom where roomId=1;
該命令只尋找roomName列的值。
如有不對,希望能夠指正,本人也在學習中。
本文出自 “張先森的部落格” 部落格,請務必保留此出處http://supermezhang.blog.51cto.com/9062111/1696714
命令列對mysql的基本操作