數據庫基礎之一--DDL(數據庫定義語言),DCL(數據庫控制語言)

Mysql是一個很是典型的C/S結構的應用模型,因此Mysql鏈接必須依賴於一個客戶端或者驅動.mysql

在linux中支持兩種鏈接模式:TCP/IP模式和socketlinux

 

SQL語句的四部分:sql

DDL:數據定義語言數據庫

DCL:數據控制語言socket

DML:數據操做語言編碼

DQL:數據查詢語言spa

這篇博客主要對DDL進行介紹命令行

一.首先從數據庫方面介紹,對的增刪查改3d

1.新建數據庫blog

  CREATE DATABASE panyang;

  CREATE DATABASE panyang2 charset=utf8;       指定字符集

2.查詢數據庫

  SHOW DATABASES;    該命令行在命令行中教經常使用

如,在mac終端中鏈接數據庫  mysql -u root -p

 

  SHOW CREATE DATABASE panyang;  查看建立數據庫的時候得語句

 

3.修改數據庫

  ALTER DATABASE panyang charset utf8;  修改數據庫編碼格式

4.刪除數據庫

  DROP DATABASE panyang2;

二.操做

在命令行中,使用哪個數據庫命令

  USE 你要用的數據庫名稱    如:use panyang

1.新建 

  CREATE TABLE student(
    id int(10)  PRIMARY KEY AUTO_INCREMENT NOT NULL,   自增,主鍵,不能爲空
    name VARCHAR(20) NOT NULL UNIQUE,  不能爲空,惟一
    age INT(10) NOT NULL,           不能爲空
    address VARCHAR(50) NOT NULL      不能爲空

  )CHARSET utf8;

2.查詢

SHOW TABLES;  查看全部的表;

SHOW CREATE TABLE student;

 

  

desc student;  查詢表結構

  

3.修改(alter.注:update面對的是數據,alert是面對的表)

  a.在表的最後一列新加一個字段interst

    ALTER TABLE student ADD interst VARCHAR(10);

  b.在表的第一列增長一個字段

    ALTER TABLE student ADD sid int FIRST;    

  c.在age字段後增長一個字段

    ALTER TABLE student ADD sex VARCHAR(10) AFTER age;

  d.在age字段後增長一個字段tel而且在最後一列增長email

    ALTER TABLE student ADD tel VARCHAR(13) AFTER age,ADD email VARCHAR(20);

  e.修改列的名稱

    ALTER TABLE student CHANGE age age111 int(20);

  f.修改列數據類型

    ALTER TABLE student MODIFY sex int(4);    

  g.刪除一個列 

    ALTER TABLE student DROP sid; 

4.刪除

  DROP TABLE student;

 

補充:

  1.建立一個與一個已經存在的表的表結構相同的表的方法.

     CREATE TABLE student2 like student;  前面是新的表名,後面是舊錶名

  2.建立一個與一個已經存在表的備份表(結構相同,數據相同)

    CREATE TABLE student22 SELECT * FROM student;

 

*************DCL***************

數據控制語言,控制用戶權限

一個用戶能夠作什麼操做?

  1.Mysql用戶鏈接Mysql

  2.控制(庫,表,數據)權限

 

主要使用如下命令

GRANT select,update *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

(對ip爲localhost的root用戶密碼爲123456,進行查找和增長的權限限制)

GRANT ALL PRIVILEGES ON *.* TO 'test'@'10.0.1.%' IDENTIFIED BY '123456' WITH GRANT OPTION;

(對ip爲10.0.1開頭的test用戶密碼爲123456,全部權限)

FLUSH PRIVILEGES

 

這裏對個語句進行解釋:

1. *.*  庫.表

*表明沒有顯示

*.*表明全部庫下面的全部表.如test.student表示test庫下的student表

2.'root'@%

%表明沒有限制

root表明受限制的用戶

'root'@'localhost'表示:ip爲localhost的root用戶受限制

'root'@'10.0.1.%'表示:ip爲10.0.1開頭的root用戶受限制

 

權限限制的4個角度:

一、你須要從哪裏鏈接數據庫?二、你須要對誰操做,作什麼操做?三、你要用哪一個用戶進行操做?四、密碼是什麼?

相關文章
相關標籤/搜索