乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MySQL之SQL入門(一)

       好程序員IT 2019-05-29

      前言:各種版本的數(shù)據(jù)庫中,有一種通用的語言用于管理數(shù)據(jù)庫中的數(shù)據(jù),它就是SQL,本章我們將學(xué)習(xí)基本的SQL語句。

      SQL的概述

      Structured Query Language 結(jié)構(gòu)化查詢語言,是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。

      各種主流的數(shù)據(jù)庫系統(tǒng)都對SQL規(guī)范作了某些編改和擴充。所以,實際上不同數(shù)據(jù)庫系統(tǒng)之間的SQL不能完全相互通用,但大部分是相同的,后面我們學(xué)習(xí)的是MySQL的版本,掌握SQL主要語法之后,要遷移到其它數(shù)據(jù)庫也是比較容易的。

      結(jié)構(gòu)化查詢語言包含6個部分:

      一:數(shù)據(jù)查詢語言(DQL:Data Query Language):

      其語句,也稱為“數(shù)據(jù)檢索語句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類型的SQL語句一起使用。

      二:數(shù)據(jù)操作語言(DML:Data Manipulation Language):

      其語句包括動詞INSERT,UPDATE和DELETE。它們分別用于添加,修改和刪除表中的行。也稱為動作查詢語言。

      三:事務(wù)處理語言(TPL):

      它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

      四:數(shù)據(jù)控制語言(DCL):

      它的語句通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對數(shù)據(jù)庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。

      五:數(shù)據(jù)定義語言(DDL):

      其語句包括動詞CREATE和DROP。在數(shù)據(jù)庫中創(chuàng)建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。DDL包括許多與人數(shù)據(jù)庫目錄中獲得數(shù)據(jù)有關(guān)的保留字。它也是動作查詢的一部分。

      六:指針控制語言(CCL):

      它的語句,像DECLARE CURSOR,F(xiàn)ETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作。

      本章我們主要介紹的是DDL和DML。

      MySQL數(shù)據(jù)庫的操作

      創(chuàng)建數(shù)據(jù)庫的基本語法是:

      create database 數(shù)據(jù)庫名;

      還可以給數(shù)據(jù)庫指定默認(rèn)的字符集以及排序規(guī)則:

      create database 數(shù)據(jù)庫名

      default character set 字符集 collate 排序規(guī)則;

      選擇數(shù)據(jù)庫

      use 數(shù)據(jù)庫名;

      修改數(shù)據(jù)庫的字符集和排序規(guī)則:

      alter database 數(shù)據(jù)庫名

      default character set  字符集 collate 排序規(guī)則;

      刪除數(shù)據(jù)庫:

      drop database 數(shù)據(jù)庫名;

      刪除時檢查數(shù)據(jù)庫是否存在:

      drop database if exists 數(shù)據(jù)庫名; 

      代碼示例:

      1.-- 刪除數(shù)據(jù)庫

      2.drop database if exists java1903;

      3.-- 創(chuàng)建數(shù)據(jù)庫

      4.create database java1903

      5.default character set utf8mb4

      6.collate utf8mb4_general_ci;

      7.-- 使用數(shù)據(jù)庫

      8.use java1903;

      MySQL常見的數(shù)據(jù)類型

      創(chuàng)建好數(shù)據(jù)庫后,我們就需要建表,建表我們需要設(shè)置字段的數(shù)據(jù)類型,我們先來了解MySQL中常見的數(shù)據(jù)類型。

      類型名稱

      說明

      存儲需求

      TINYINT

      很小的整數(shù)

      1個字節(jié)

      SMALLINT

      小的整數(shù)

      2個宇節(jié)

      MEDIUMINT

      中等大小的整數(shù)

      3個字節(jié)

      INT (INTEGHR)

      普通大小的整數(shù)

      4個字節(jié)

      BIGINT

      大整數(shù)

      8個字節(jié)

      2)小數(shù)類型

      類型名稱

      說明

      存儲需求

      FLOAT

      單精度浮點數(shù)

      4 個字節(jié)

      DOUBLE

      雙精度浮點數(shù)

      8 個字節(jié)

      DECIMAL (M, D),DEC

      壓縮的“嚴(yán)格”定點數(shù)

      M+2 個字節(jié)

      3) 日期/時間類型

      類型名稱

      日期格式

      日期范圍

      存儲需求

      YEAR

      YYYY

      1901 ~ 2155

      1 個字節(jié)

      TIME

      HH:MM:SS

      -838:59:59 ~ 838:59:59

      3 個字節(jié)

      DATE

      YYYY-MM-DD

      1000-01-01 ~ 9999-12-3

      3 個字節(jié)

      DATETIME

      YYYY-MM-DD HH:MM:SS

      1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

      8 個字節(jié)

      TIMESTAMP

      YYYY-MM-DD HH:MM:SS

      1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC

      4 個字節(jié)

      3) 字符串類型

      類型名稱

      說明

      存儲需求

      CHAR(M)

      固定長度非二進制字符串

      M 字節(jié),1<=M<=255

      VARCHAR(M)

      變長非二進制字符串

      L+1字節(jié),在此,L< = M和 1<=M<=255

      TINYTEXT

      非常小的非二進制字符串

      L+1字節(jié),在此,L<2^8

      TEXT

      小的非二進制字符串

      L+2字節(jié),在此,L<2^16

      MEDIUMTEXT

      中等大小的非二進制字符串

      L+3字節(jié),在此,L<2^24

      LONGTEXT

      大的非二進制字符串

      L+4字節(jié),在此,L<2^32

      ENUM

      枚舉類型,只能有一個枚舉字符串值

      1或2個字節(jié),取決于枚舉值的數(shù)目 (最大值為65535)

      SET

      一個設(shè)置,字符串對象可以有零個或 多個SET成員

      1、2、3、4或8個字節(jié),取決于集合 成員的數(shù)量(最多64個成員)

      4) 二進制類型

      類型名稱

      說明

      存儲需求

      BIT(M)

      位字段類型

      大約 (M+7)/8 字節(jié)

      BINARY(M)

      固定長度二進制字符串

      M 字節(jié)

      VARBINARY (M)

      可變長度二進制字符串

      M+1 字節(jié)

      TINYBLOB (M)

      非常小的BLOB

      L+1 字節(jié),在此,L<2^8

      BLOB (M)

      小 BLOB

      L+2 字節(jié),在此,L<2^16

      MEDIUMBLOB (M)

      中等大小的BLOB

      L+3 字節(jié),在此,L<2^24

      LONGBLOB (M)

      非常大的BLOB

      L+4 字節(jié),在此,L<2^32

      表的操作

      創(chuàng)建表:

      create table 表名

      (

      字段名 數(shù)據(jù)類型 [約束],

      字段名 數(shù)據(jù)類型 [約束],

      ....

      )

      主要的約束類型有:

      primary key 主鍵,表中只能有一個,不能重復(fù),不能為空

      not null   非空,必須填寫

      unique 唯一,不能重復(fù)

      auto_increment 自動增長,必須是整數(shù)類型,不需要手動插入

      foreign key 外鍵,建立表之間的引用關(guān)系

      刪除表:

      drop table 表名;

      刪除表時進行檢查:

      drop table if exists 表名;

      修改表,添加字段:

      alter table 表名 add column 字段名 數(shù)據(jù)類型;

      修改表,刪除字段:

      alter table 表名 drop column 字段名;

      查看表結(jié)構(gòu):

      desc 表名;

      代碼示例:

      9.-- 刪除表

      10.drop table if exists tb_student;

      11.-- 創(chuàng)建學(xué)生表

      12.create table tb_student

      13.(

      14. stu_id int primary key auto_increment,

      15. stu_name varchar(20) not null,

      16. stu_age int not null,

      17. stu_gender varchar(1) not null,

      18. stu_address varchar(200)

      19.);

      數(shù)據(jù)操作語言DML

      數(shù)據(jù)操作語言有插入、刪除和更新語句組成。

      單行插入:

      insert into 表名(字段名,字段名,字段名..) values(值,值,值..);

      多行插入

      insert into 表名(字段名,字段名,字段名..) 

      values(值,值,值..),(值,值,值..),(值,值,值..);

      將一張表數(shù)據(jù)插入另一張表

      insert into 表1(字段名,字段名,字段名..) 

      select 字段名,字段名,字段名 from 表2;

      刪除所有數(shù)據(jù)

      delete from 表名;

      清空表

      truncate table 表名;

      帶條件的刪除

      delete from 表名 [where 條件];

      更新

      update 表名 set 字段 = 值,字段 = 值... [where 條件];

      代碼示例:

      20.-- 插入一行學(xué)生記錄

      21.insert into tb_student(stu_name,stu_age,stu_gender,stu_address)

      22.values('趙六',30,'男','上海');

      23.-- 插入多行學(xué)生

      24.insert into tb_student(stu_name,stu_age,stu_gender,stu_address)

      25.values('陳七',20,'男','武漢'),('陳大七',28,'男','上海'),('陳小七',18,'男','北京');

      26.-- 刪除學(xué)號為3的學(xué)生

      27.delete from tb_student where stu_id = 3;

      28.-- 全部刪除

      29.delete from tb_student;

      30.-- 清空表

      31.truncate table tb_student;

      32.-- 更新陳七的年齡為23,性別為女

      33.update tb_student set stu_age = 23,stu_gender = '女' 

      34.where stu_name = '陳七';

      總結(jié)

      本章我們學(xué)習(xí)了SQL語言中的DDL和DML,能實現(xiàn)建表建表和數(shù)據(jù)的增刪改操作,還有一個重要的查詢操作,也就是DQL,會在下章介紹。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多