CREATE TABLE EMP1 AS SELECT * FROM EMP WHERE EMPNO=1
SELECT * INTO NEW_TABLE FROM EMP WHERE EMPNO=1 (IF NEW_TABLE IS EXIST )
1.create database name; //創建數據庫 (create 內部命令)
mysql>create database ;
2.use databasename; //選擇數據庫 (use內部命令)
mysql>use ;
3.drop database name; //直接刪除數據庫,不提醒 (drop內部命令)
mysql>drop database ;
4.drop table name; // 直接刪除表
mysql>drop table ;
5.create table name; //創建表
mysql>create table ;
**前提是先mysql>use;
6.show databases;//顯示所有數據庫
mysql>show databases;
7.show tables; //顯示數據庫中的表 (show內部命令)
mysql>show tables;
**提前是先mysql>use;
8.describe tablename; //顯示表的詳細描述
mysql>describe ;
9.select version(),current_date; //顯示當前mysql版本和當前日期
mysql>select version(), current_date;
mysql>select version(),
->current_date;
**select 內部命令
10.mysql>flush privileges ; //刷新數據庫
11.mysql實現修改用戶密碼:
11.1 update //修改
shell>mysql -u root -p
mysql> update mysql.user set password=PASSWORD(’新密碼’) where User='root';
mysql> flush privileges;
mysql> quit
11.2 mysqladmin//修改用戶密碼
shell>mysqladmin -u root password new_password
11.3 自己測試未通過
shell>mysql -u root -p
mysql>SET PASSWORD FOR root=PASSWORD("root");
12.創建帳號
mysql> grant all(delete,updatae,create,drop,insert) privileges on *.* to @localhost identified by ;
13.重命名表:
mysql > alter table rename ; //把表t1重命名為t2
14.備份數據庫
14.1 導出整個數據庫
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
mysqldump -u root -p asb >d:\asb.sql
14.2 導出一個表
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
mysqldump -u root -p asb yg>d:\yg.sql
14.3 導出一個數據庫結構
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
// (-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table)
mysqldump mysqladmin外部命令
14.4 導入數據庫
/*用source 命令
*/進入mysql數據庫控制台,先建立數據庫,use數據庫
mysql -u root -p
mysql>create ;
mysql>use
mydql>source d:\.sql;
14.5 導入表
// 進入數據庫,執行導入操作
mysql>use;
mysql>source d:\.sql;
15.將表中記錄清空:
mysql>delete from ;
15.1將表中記錄清空:
mysql>Truncate tablename;
16.顯示表中的記錄:
mysql>select * from ;
17.一個建庫和建表以及插入數據的實例
Drop database if exists school; //如果存在SCHOOL則刪除
create database school; //建立庫SCHOOL
use school; //打開庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表結束
//以下為插入字段
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
**注:在建表中
(1) 將ID設為長度為3的數字字段:int(3),並讓它每個記錄自動加一: auto_increment,
並不能為空:not null,而且讓它成為主字段primary key
(2) 將NAME設為長度為10的字符字段
(3) 將ADDRESS設為長度50的字符字段,而且缺省值為深圳。varchar和char有什麼區別
呢,只有等以後的文章再說了。
(4) 將YEAR設為日期字段。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。 你可以將以上命令
原樣寫入一個文本文件中假設為school.sql,然後復制到c:下,並在DOS狀態進入目錄
mysqlin,然後鍵入以下命令:
mysql -uroot -p密碼 < c:school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你
只要將//的注釋去掉即可使用)。
將文本數據轉到數據庫中
文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用來代替。例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
數據傳入命令load data local infile "文件名" into table 表名;
注意:你最好將文件復制到mysqlin目錄下,並且要先用use命令選表所在的庫。
18.revoke all on database from user
//移除user用戶在database數據庫上的所有權限 (自己測試未通過)
19.連接mysql。
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
20.登錄數據庫
mysql-uroot-p;
mysql-uroot-pnewpassword;
mysqlmydb-uroot-p;
mysql mydb -uroot -pnewpassword;
mydb數據庫名
21.剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性盡可能提高, 在這裡應把匿名帳戶刪除、root帳戶設置密碼,可用如下命令進行:
mysql>use mysql;
mysql>delete from User where User="";
mysql>update User set Password=PASSWORD('newpassword') where User='root';
22.新增用戶
格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by "密碼"
例1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然後鍵入以下命令:
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登錄你的MySQL數據庫並對你的數據可以為所欲為了,解決辦法見例2。
例2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MySQL數據庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MySQL主機上的web頁來訪問。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
下面我們來看看MySQL中有關數據庫方面的操作。注意:你必須首先登錄到MySQL中,以下操作都是在MySQL的提示符下進行的,而且每個命令以分號結束。
在進行開發和實際應用中,用戶不應該只用root用戶進行連接數據庫,雖然使用root用戶進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技術的提高。我們給一個應用中使用的用戶賦予最恰當的數據庫權限。如一個只進行數據插入的用戶不應賦予其刪除數據的權限。MySql的用戶管理是通過User表來實現的,添加新用戶常用的方法有兩個,一是在User表插入相應的數據行,同時設置相應的權限;二是通過GRANT命令創建具有某種權限的用戶。其中GRANT的常用用法如下:
mysql>grant all on mydb.* to NewUserName@HostName identified by "password";
mysql>grant usage on *.* to NewUserName@HostName identified by "password";
mysql>grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";
mysql>grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";
23.對常用權限的解釋:
23.1 全局管理權限:
FILE:在MySQL服務器上讀寫文件。
PROCESS:顯示或殺死屬於其它用戶的服務線程。
RELOAD:重載訪問控制表,刷新日志等。
SHUTDOWN:關閉MySQL服務。
23.2 數據庫/數據表/數據列權限:
Alter:修改已存在的數據表(例如增加/刪除列)和索引。
Create:建立新的數據庫或數據表。
Delete:刪除表的記錄。
Drop:刪除數據表或數據庫。
INDEX:建立或刪除索引。
Insert:增加表的記錄。
Select:顯示/搜索表的記錄。
Update:修改表中已存在的記錄。
23.3 特別的權限:
ALL:允許做任何事(和root一樣)。
USAGE:只允許登錄--其它什麼也不允許做。
最後給出在RedHat9.0下的MySql操作演示:
選用數據庫的root用戶登錄
[weiwen@weiwenlinux]$mysql -uroot -p
Enterpassword:MyPassword
mysql>create database mydb;
QueryOK,1rowaffected(0.02sec)
mysql>use mydb;
Databasechanged
mysql>create table TestTable(Idintaut_increment primary key,
UserNamevarchar(16) not null,
Address varchar(255));
QueryOK,0rowsaffected(0.02sec)
mysql>grant all on mydb.* to test@localhost identified by "test";
QueryOK,0rowsaffected(0.01sec)
mysql>quit
Bye
[weiwen@weiwenlinux]$mysqlmydb -utest -ptest
其中test.sql是用vi編輯好的SQL腳本,其內容為:
Insert into TestTable(UserName,Address) values('Tom','shanghai');
Insert into TestTable(UserName,Address) values('John','beijing');
select * from TestTable;
運行已經編輯好的SQL腳本可以用source filename或.filename。
以上只是對新手的簡單練習,要成為一個數據庫好手,當以孜孜不倦地追求知識,不斷地思考、嘗試、再思考。
24.MySql常用命令總結
24.1 使用SHOW語句找出在服務器上當前存在什麼數據庫:
mysql>SHOW DATABASES;
24.2 創建一個數據庫
mysql>Create DATABASE ;
24.3 選擇你所創建的數據庫
mysql>USE ;(按回車鍵出現Databasechanged時說明操作成功!)
24.4 查看現在的數據庫中存在什麼表
mysql>SHOW TABLES;
24.5 創建一個數據庫表
mysql>Create TABLE(name VARCHAR(20),sex CHAR(1));
24.6 顯示表的結構:
mysql>DESCRIBE ;
24.7 往表中加入記錄
mysql>insert into values("hyq","M");
24.8 用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE;
24.9 導入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
24.10 刪除表
mysql>drop TABLE ;
24.11 清空表
mysql>delete from ;
24.12 更新表中數據
mysql>update set sex="f" where name='hyq';
25. --通過偽列rowid查找重復數據