程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 數據庫操作

數據庫操作

編輯:MySQL綜合教程

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查找重復數據

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved