01-數(shù)據(jù)庫(kù)MySQL[Python]

一、數(shù)據(jù)庫(kù)系統(tǒng)

  • 數(shù)據(jù)庫(kù)
    DataBase【DB】铆遭,指的是長(zhǎng)期保存到計(jì)算機(jī)上的數(shù)據(jù),按照一定順序組織沿猜,可以被各種用戶或者應(yīng)用共享的數(shù)據(jù)集合枚荣。【用于存儲(chǔ)數(shù)據(jù)的地方啼肩,可以視為存儲(chǔ)數(shù)據(jù)的容器】

  • 數(shù)據(jù)庫(kù)管理系統(tǒng)
    DataBase Management System【DBMS】,能夠管理和操作數(shù)據(jù)庫(kù)的大型的軟件橄妆。
    用于建立、使用和維護(hù)數(shù)據(jù)庫(kù)祈坠,對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制害碾,為了保證數(shù)據(jù)庫(kù)的安全性和完整性。用戶可以通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)赦拘,或?qū)?shù)據(jù)庫(kù)進(jìn)行維護(hù)慌随。

    數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)之間的關(guān)系?
    數(shù)據(jù)庫(kù):存儲(chǔ),維護(hù)和管理數(shù)據(jù)的集合;
    數(shù)據(jù)庫(kù)管理系統(tǒng): 就是數(shù)據(jù)庫(kù)管理軟件,通過(guò)它可以進(jìn)行數(shù)據(jù)庫(kù)的管理和維護(hù)工作;

  • 常見(jiàn)的數(shù)據(jù)庫(kù)管理系統(tǒng)

    1. Oracle(甲骨文): 目前比較成功的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)阁猜,運(yùn)行穩(wěn)定丸逸,功能齊全,性能超群剃袍,技術(shù)領(lǐng)先黄刚,主要應(yīng)用在大型的企業(yè)數(shù)據(jù)庫(kù)領(lǐng)域。
    2. DB2: IBM(國(guó)際商業(yè)機(jī)器公司)的產(chǎn)品民效,伸縮性比較強(qiáng)憔维。
    3. SQL Server: Microsoft的產(chǎn)品,軟件界面友好畏邢,易學(xué)易用业扒,在操作性和交互性方面獨(dú)樹(shù)一幟。
    4. MySQL: 免費(fèi)的數(shù)據(jù)庫(kù)系統(tǒng)舒萎,被廣泛引用于中小型應(yīng)用系統(tǒng)凶赁,體積小,速度快逆甜,總體擁有成本低,開(kāi)發(fā)源代碼致板,2008年被SUN收購(gòu)交煞,2009年SUN被Oracle收購(gòu)。

二斟或、數(shù)據(jù)庫(kù)的安裝

  • 安裝

    # 添加
    sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty main universe'
    
    # 更新
    sudo apt-get update
    
    # 搜索(從返回的結(jié)果查看有哪些版本可以安裝素征,用下邊的命令安裝相應(yīng)的版本)
    sudo apt-cache search mysql | grep mysql-server
    
    # 安裝5.6版本
    sudo apt install mysql-server-5.6
    
    # 設(shè)置開(kāi)機(jī)自啟動(dòng)
    sudo systemctl enable mysql.service
    
    
  • 服務(wù)開(kāi)啟和停止

    // 方式一
    sudo service mysql status  // 查看狀態(tài)
    sudo service mysql start    // 開(kāi)啟服務(wù)
    sudo service mysql stop    // 停止服務(wù)
    
    // 方式二
    sudo systemctl stauts mysql.service    // 查看狀態(tài)  
    sudo systemctl start mysql.service      // 開(kāi)啟服務(wù)
    sudo systemctl stop mysql.service      // 停止服務(wù)器
    sudo systemctl restart mysql.service  // 重啟服務(wù)
    sudo systemctl enable mysql.service  // 開(kāi)啟服務(wù)開(kāi)機(jī)自啟動(dòng)
    sudo systemctl disable mysql.service  // 關(guān)閉服務(wù)開(kāi)機(jī)自啟動(dòng)
    
    
  • 數(shù)據(jù)庫(kù)連接

    語(yǔ)法:
      mysql -u 用戶名 -p
    例如:
      // 默認(rèn)用戶名root, 密碼123456
      mysql -u root -p
      mysql -uroot -p
      mysql -uroot -p123456
    
    

    退出數(shù)據(jù)庫(kù): quit
    MySQL端口號(hào)是3306!!!

  • 遠(yuǎn)程服務(wù)器中的數(shù)據(jù)庫(kù)

    建立遠(yuǎn)程連接用戶:
    $  mysql –uroot –p123456  // 連接數(shù)據(jù)庫(kù)萝挤,-u用戶名 -p密碼
    mysql> use mysql;
    mysql> select * from user;
    // 第一個(gè)admin表示用戶名御毅,%表示所有的電腦都可以連接,也可以設(shè)置某個(gè)ip地址運(yùn)行連接怜珍,第二個(gè)admin123表示密碼
    // 為了方便其實(shí)也可以設(shè)置為root
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION;    
    mysql> select * from user;  // 查看遠(yuǎn)程連接用戶admin是否新增成功端蛆,若存在則成功
    mysql> exit;    // 退出  
    
    

    默認(rèn)mysql的root用戶只能是本地連接。如果遠(yuǎn)程服務(wù)器的數(shù)據(jù)酥泛,需要建立遠(yuǎn)程連接用戶今豆,否則連接不了!!!

三、SQL概述

  • 概述
    Structure Query Language柔袁,結(jié)構(gòu)化查詢語(yǔ)言呆躲。是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言捶索,用于存取數(shù)據(jù)以及查詢插掂、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。

  • 數(shù)據(jù)庫(kù)服務(wù)器、數(shù)據(jù)庫(kù)辅甥、表單之間的關(guān)系

  • 分類(lèi)

    1. DDL【Data Definition Language】數(shù)據(jù)定義語(yǔ)言酝润,用戶創(chuàng)建、修改肆氓、刪除表結(jié)構(gòu)
    2. DML【Data Manipulation Language】數(shù)據(jù)操作語(yǔ)言袍祖,用于對(duì)數(shù)據(jù)表進(jìn)行增刪改的操作
    3. DQL【Data Query Language】數(shù)據(jù)查詢語(yǔ)言,用于負(fù)責(zé)數(shù)據(jù)表的查詢工作
    4. DCL【Data Control Language】數(shù)據(jù)控制語(yǔ)言谢揪,用來(lái)定義訪問(wèn)權(quán)限和安全級(jí)別

四蕉陋、數(shù)據(jù)庫(kù)之DDL

一般情況下,mysql關(guān)鍵字是大寫(xiě)的拨扶,但是為了方便就小寫(xiě)凳鬓。

  • 顯示所有數(shù)據(jù)庫(kù)(當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器中)

    mysql> show databases;                
    +--------------------+    
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.01 sec)
    
    
  • 選擇數(shù)據(jù)庫(kù)

    格式: 
      use 數(shù)據(jù)庫(kù)名稱(chēng);
    例如: 
      use zyz;
    
    

    注意: 在創(chuàng)建表單、添加數(shù)據(jù)患民、刪除數(shù)據(jù)缩举、修改數(shù)據(jù)...操作的前提是要進(jìn)入到對(duì)應(yīng)的數(shù)據(jù)中,否則是操作不了的匹颤。

  • 創(chuàng)建數(shù)據(jù)庫(kù)

    格式:
      create database 數(shù)據(jù)庫(kù)名字;
    例如:
      create database zyz;
      // 創(chuàng)建時(shí)指定編碼類(lèi)型
      create database pythondb charset=utf8;
    
    

    注意: 命令行操作仅孩,要注意中英文狀態(tài),都是要使用英文的標(biāo)點(diǎn)符號(hào)S”汀A赡健!

  • 刪除數(shù)據(jù)庫(kù)

    格式:
      drop database 數(shù)據(jù)庫(kù)名字;
    例如:
      drop database zyz;
    
    
  • 查看數(shù)據(jù)庫(kù)中的表

    show tables;
    
    
  • 創(chuàng)建表

    格式:
      create table 表名(
        字段1 字段類(lèi)型[列級(jí)別約束條件][默認(rèn)值]赦肃,
        字段2 字段類(lèi)型[列級(jí)別約束條件][默認(rèn)值]溅蛉,
        ….
        字段n 字段類(lèi)型[列級(jí)別約束條件][默認(rèn)值]
        [表級(jí)別約束條件]
      )
    例如:
      create table students(id int(4),name char(20),age int(4));
      create table students(id int(4) primary key,name char(20),age int(4));
    
    

    創(chuàng)建表之前,一定要先進(jìn)入對(duì)應(yīng)的數(shù)據(jù)庫(kù)中K稹4唷!
    顯示創(chuàng)建表的詳細(xì)信息: show create table student;

  • 刪除表

    格式:
      drop table 表名;
    例如:
      drop table students;
    
    
  • 修改表名

    格式:
      alter table 老表名 rename 新表名;
    例如:
      alter table students_base rename students;
    
    
  • 查看表的結(jié)構(gòu)

    格式:
      desc 表名;
    例如:
      desc students;
    
    Field:域/字段/列  
    Type:類(lèi)型
    Null:是否為空
    Key:主鍵 
    Default:默認(rèn)值
    Extra:額外屬性
    
    
  • 增加一個(gè)字段

    格式:
      alter table 表名 add 新字段的名字 字段屬性
    例如:
      alter table students add sex char(10); 
    
    

    如果要添加的某個(gè)字段不能為空厅各,就是not null;
    例如: alter table students add sex char(10) not null;

  • 刪除一個(gè)字段

    格式:
      alter table 表名 drop 字段名;
    例如:
      alter table students drop sex;
    
    
  • 修改某個(gè)字段 --- 添加屬性

    格式:
      alter table 表名 change 老字段名 新字段名 字段屬性;
    例如:
      alter table students change id id int(4) auto_increment;  //給id添加自動(dòng)增長(zhǎng)的屬性
    
    
  • 修改某個(gè)字段 --- 修改屬性

    //修改id的屬性镜撩,去除auto_increment屬性
    alter table students change id id int(4);
    
    
  • 修改某個(gè)字段 --- 刪除主鍵

    alter table students drop primary key;
    
    
  • 修改某個(gè)字段 --- 添加主鍵

    alter table students add primary key(id);
    alter table students change id id int(4) primary key;
    
    

    一張表中只能有一個(gè)字段是自動(dòng)增長(zhǎng)的,并且被設(shè)定為自動(dòng)增長(zhǎng)的這個(gè)字段一定要設(shè)置為主鍵;
    如果一個(gè)主鍵字段有自增長(zhǎng)屬性讯检,如果想要直接刪除主鍵猖凛,這是操作不了的晃洒;必須是先將自增長(zhǎng)屬性去除熙宇,然后才能刪除主鍵亏栈;

  • 常用數(shù)據(jù)類(lèi)型

    1.數(shù)字?jǐn)?shù)據(jù)類(lèi)型
    - INT - 正常大小的整數(shù),可以帶符號(hào)投放。如果是有符號(hào)的奈泪,它允許的范圍是從-2147483648到2147483647。如果是無(wú)符號(hào),允許的范圍是從0到4294967295涝桅。 可以指定多達(dá)11位的寬度拜姿。
    - TINYINT - 一個(gè)非常小的整數(shù),可以帶符號(hào)冯遂。如果是有符號(hào)蕊肥,它允許的范圍是從-128到127。如果是無(wú)符號(hào)蛤肌,允許的范圍是從0到255壁却,可以指定多達(dá)4位數(shù)的寬度。
    - SMALLINT - 一個(gè)小的整數(shù)裸准,可以帶符號(hào)展东。如果有符號(hào),允許范圍為-32768至32767炒俱。如果無(wú)符號(hào)盐肃,允許的范圍是從0到65535,可以指定最多5位的寬度权悟。
    - MEDIUMINT - 一個(gè)中等大小的整數(shù)砸王,可以帶符號(hào)。如果有符號(hào)峦阁,允許范圍為-8388608至8388607处硬。 如果無(wú)符號(hào),允許的范圍是從0到16777215拇派,可以指定最多9位的寬度。
    - BIGINT - 一個(gè)大的整數(shù)凿跳,可以帶符號(hào)件豌。如果有符號(hào),允許范圍為-9223372036854775808到9223372036854775807控嗜。如果無(wú)符號(hào)茧彤,允許的范圍是從0到18446744073709551615\. 可以指定最多20位的寬度。
    - FLOAT(M,D) - 不能使用無(wú)符號(hào)的浮點(diǎn)數(shù)字疆栏≡啵可以定義顯示長(zhǎng)度(M)和小數(shù)位數(shù)(D)。這不是必需的壁顶,并且默認(rèn)為10,2珠洗。其中2是小數(shù)的位數(shù),10是數(shù)字(包括小數(shù))的總數(shù)若专。小數(shù)精度可以到24個(gè)浮點(diǎn)许蓖。
    - DOUBLE(M,D) - 不能使用無(wú)符號(hào)的雙精度浮點(diǎn)數(shù)。可以定義顯示長(zhǎng)度(M)和小數(shù)位數(shù)(D)膊爪。 這不是必需的自阱,默認(rèn)為16,4,其中4是小數(shù)的位數(shù)米酬。小數(shù)精度可以達(dá)到53位的DOUBLE沛豌。 REAL是DOUBLE同義詞。
    - DECIMAL(M,D) - 非壓縮浮點(diǎn)數(shù)不能是無(wú)符號(hào)的赃额。在解包小數(shù)加派,每個(gè)小數(shù)對(duì)應(yīng)于一個(gè)字節(jié)。定義顯示長(zhǎng)度(M)和小數(shù)(D)的數(shù)量是必需的爬早。 NUMERIC是DECIMAL的同義詞哼丈。[decimal]
    2.日期和時(shí)間類(lèi)型
    - DATE - 以YYYY-MM-DD格式的日期,在1000-01-01和9999-12-31之間筛严。 例如醉旦,1973年12月30日將被存儲(chǔ)為1973-12-30。
    - DATETIME - 日期和時(shí)間組合以YYYY-MM-DD HH:MM:SS格式桨啃,在1000-01-01 00:00:00 到9999-12-31 23:59:59之間车胡。例如,1973年12月30日下午3:30照瘾,會(huì)被存儲(chǔ)為1973-12-30 15:30:00匈棘。
    - TIMESTAMP - 1970年1月1日午夜之間的時(shí)間戳,到2037的某個(gè)時(shí)候析命。這看起來(lái)像前面的DATETIME格式主卫,無(wú)需只是數(shù)字之間的連字符; 1973年12月30日下午3點(diǎn)30分將被存儲(chǔ)為19731230153000(YYYYMMDDHHMMSS)。
    - TIME - 存儲(chǔ)時(shí)間在HH:MM:SS格式鹃愤。
    - YEAR(M) - 以2位或4位數(shù)字格式來(lái)存儲(chǔ)年份簇搅。如果長(zhǎng)度指定為2(例如YEAR(2)),年份就可以為1970至2069(70?69)软吐。如果長(zhǎng)度指定為4瘩将,年份范圍是1901-2155,默認(rèn)長(zhǎng)度為4凹耙。
    3.字符串類(lèi)型
    雖然數(shù)字和日期類(lèi)型比較有意思姿现,但存儲(chǔ)大多數(shù)數(shù)據(jù)都可能是字符串格式。 下面列出了在MySQL中常見(jiàn)的字符串?dāng)?shù)據(jù)類(lèi)型肖抱。
    - CHAR(M) - 固定長(zhǎng)度的字符串是以長(zhǎng)度為1到255之間個(gè)字符長(zhǎng)度(例如:CHAR(5))备典,存儲(chǔ)右空格填充到指定的長(zhǎng)度。 限定長(zhǎng)度不是必需的意述,它會(huì)默認(rèn)為1熊经。
    - VARCHAR(M) - 可變長(zhǎng)度的字符串是以長(zhǎng)度為1到255之間字符數(shù)(高版本的MySQL超過(guò)255); 例如: VARCHAR(25). 創(chuàng)建VARCHAR類(lèi)型字段時(shí)泽艘,必須定義長(zhǎng)度。 [varchar]
    - BLOB or TEXT - 字段的最大長(zhǎng)度是65535個(gè)字符镐依。 BLOB是“二進(jìn)制大對(duì)象”匹涮,并用來(lái)存儲(chǔ)大的二進(jìn)制數(shù)據(jù),如圖像或其他類(lèi)型的文件槐壳。定義為T(mén)EXT文本字段還持有大量的數(shù)據(jù); 兩者之間的區(qū)別是然低,排序和比較上存儲(chǔ)的數(shù)據(jù),BLOB大小寫(xiě)敏感务唐,而TEXT字段不區(qū)分大小寫(xiě)雳攘。不用指定BLOB或TEXT的長(zhǎng)度。
    - TINYBLOB 或 TINYTEXT - BLOB或TEXT列用255個(gè)字符的最大長(zhǎng)度枫笛。不指定TINYBLOB或TINYTEXT的長(zhǎng)度吨灭。
    - MEDIUMBLOB or MEDIUMTEXT - BLOB或TEXT列具有16777215字符的最大長(zhǎng)度。不指定MEDIUMBLOB或MEDIUMTEXT的長(zhǎng)度刑巧。
    - LONGBLOB 或 LONGTEXT -  BLOB或TEXT列具有4294967295字符的最大長(zhǎng)度喧兄。不指定LONGBLOB或LONGTEXT的長(zhǎng)度。
    - ENUM - 枚舉啊楚,這是一個(gè)奇特的術(shù)語(yǔ)列表吠冤。當(dāng)定義一個(gè)ENUM,要?jiǎng)?chuàng)建它的值的列表恭理,這些是必須用于選擇的項(xiàng)(也可以是NULL)拯辙。例如,如果想要字段包含“A”或“B”或“C”颜价,那么可以定義為ENUM為 ENUM(“A”涯保,“B”,“C”)也只有這些值(或NULL)才能用來(lái)填充這個(gè)字段周伦。
    
    主要使用的數(shù)據(jù)類(lèi)型:
       數(shù)字型數(shù)據(jù)類(lèi)型: int float double
       日期類(lèi): date
       字符串: char varchar
    
    

    char 和 varchar 的區(qū)別
    char(M)是固定長(zhǎng)度的字符串遭赂, 在定義時(shí)指定字符串列長(zhǎng)。當(dāng)保存數(shù)據(jù)時(shí)如果長(zhǎng)度不夠在右側(cè)填充空格以達(dá)到指定的長(zhǎng)度横辆。M 表示列的長(zhǎng)度,M 的取值范圍是0-255個(gè)字符;
    varchar(M)是長(zhǎng)度可變的字符串茄猫,M 表示最大的列長(zhǎng)度狈蚤。M 的取值范圍是0-65535。varchar的最大實(shí)際長(zhǎng)度是由最長(zhǎng)的行的大小和使用的字符集確定的划纽,而實(shí)際占用的空間為字符串的實(shí)際長(zhǎng)度+1

五脆侮、數(shù)據(jù)庫(kù)之DML

  • 增加數(shù)據(jù)

    格式:insert into 表名(字段1,字段2,.....) values(值1,值2.....);
    例如:
      insert into students(id,name,age) values(1001,"張三",20);
      insert into students(name,age) values("王六",22);
      insert into students(name,age,sex) values("八妹",25,"女");
      insert into students(name,sex) values("九妹","女");
    
      // 注意值必須是和默認(rèn)結(jié)構(gòu)與之對(duì)應(yīng)
      insert into students values(1006,"老七",18,'男');
    
    
    一次性寫(xiě)入多條數(shù)據(jù)
    格式: 
      insert into 表名(屬性1,屬性2..) values(值1.1勇劣,值2.1...),(值1.2靖避,值2.2,....);
    例如: 
       insert into students(id,name,sex,age) values('1001','張三','男',20),('1002','李四','男',21);
    
    

    插入的是日期潭枣,和字符串一樣,使用引號(hào)括起來(lái)幻捏。

  • 更新數(shù)據(jù)

    格式:
      update 表名 set 字段=值 where 條件;
    例如:
      update students set address="江西"  where name="王老五";
      update students set math=98,chinese=93 where id=1002;
    
    

    如果where子句沒(méi)有指定盆犁,則默認(rèn)將表中的數(shù)據(jù)全部更新。

  • 刪除數(shù)據(jù)

    格式:delete from 表名 where 條件 
    例如:
      // 刪除整個(gè)表單數(shù)據(jù)
      delete from students;
      // 刪除名字為李四的學(xué)生信息
      delete from students where name="李四";
      // 刪除id為1003的學(xué)生信息
      delete from students where id=1003;
    
    

    如果where子句沒(méi)有指定篡九,則默認(rèn)將表中的數(shù)據(jù)全部刪除谐岁。

六、數(shù)據(jù)庫(kù)之DQL

數(shù)據(jù)庫(kù)執(zhí)行DQL語(yǔ)言不會(huì)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生任何改變榛臼,而是讓數(shù)據(jù)庫(kù)發(fā)送查詢結(jié)果到客戶端伊佃,查詢返回的結(jié)果其實(shí)是一張?zhí)摂M表。
基本語(yǔ)法: SELECT 列名 FROM 表名 [WHERE --> GROUP BY -->HAVING--> ORDER BY]

  • 基礎(chǔ)查詢

    // 查詢所有字段(列)
    select * from students;
    
    // 查詢指定字段(列)
    select id,name,age from student;
    
    // as添加別名 【后續(xù)用于子查詢】
    select name as "姓名" from studnets;
    
    

    as不是給表里的字段取別名沛善,而是給查詢的結(jié)果字段取別名航揉。其目的是讓查詢的結(jié)果展現(xiàn)更符合人們觀看習(xí)慣,在多張表查詢的時(shí)候可以直接的區(qū)別多張表的同名的字段金刁。

  • 條件查詢

    1帅涂、模糊查詢數(shù)據(jù)
      %: 表示任意個(gè)或多個(gè)字符,可匹配任意類(lèi)型和長(zhǎng)度的字符
      _: 匹配任意一個(gè)字符
     例如: 查詢出學(xué)生姓王的學(xué)生信息胀葱;
       select * from students where name like "王%";
    
    2漠秋、and并且
      例如: 顯示math和chinese成績(jī)大于90的學(xué)生信息;
        select * from students_test where math>=90 and chinese>=90;
    
    3、or或者
       例如: 顯示math或chinese成績(jī)大于90的學(xué)生信息;
        select * from students_test where math>=90 or chinese>=90;
    
    4抵屿、between x and y //在x與y之間的  
       例如: 顯示math成績(jī)?cè)?0~100之間的學(xué)生信息;
        select * from students_test where math between 90 and 100;
    
    5庆锦、in在..里面,允許規(guī)定多個(gè)值
      例如: 顯示1703和1704兩個(gè)班級(jí)學(xué)生信息;
        select * from students where class="1704" or class="1703";
        select * from students_test where class in ("1703","1704‘’);
    
    6轧葛、limit指定顯示多少行搂抒,limit后面2個(gè)數(shù)字,用逗號(hào)隔開(kāi)尿扯,第一個(gè)表示數(shù)字后求晶。第二數(shù)字表示顯示幾行
      例如: 
        顯示前面10行數(shù)據(jù):
          select * from students limit 10;
        顯示4到7行的數(shù)據(jù):
          select * from students limit 3,4;
        按chinese排序,顯示4,5行數(shù)據(jù):
          select * from students limit 3,2;
        顯示english成績(jī)?cè)?0~90之間的學(xué)生信息衷笋,顯示開(kāi)頭2行:
          select * from students where english between 70 and 90 limit 0,2;
    
    7芳杏、邏輯運(yùn)算符
      > 大于
      < 小于
      >= 大于等于
      <= 小于等于
      =  等于
      != 不等于
    
     8、算術(shù)運(yùn)算符
      + 加法
      - 減法
      * 乘法
      / 除法
      % 取余
    
    
  • 其他(聚合函數(shù))

    1辟宗、count() 統(tǒng)計(jì)數(shù)量
      select class,count(class) from students group by class;
    2爵赵、avg()    求平均分
      select avg(math) from students;
    3、sum() 求和
      select sum(math) from students;
    4泊脐、max()最大值
     select max(math) from students;
    5空幻、min()最小值
     select min(math) from students;
    6、distinct()  去重復(fù)
     select distinct(goods_number) from students ;
    7容客、order by 排序
     select * from students order by id;    // 默認(rèn)是升序
     select * from students order by id desc;  // 降序
    8秕铛、group by  分組
     select class,count(class) from students group by class;
    9约郁、having 表示條件(類(lèi)似where)
      虛擬字段是不可以放在where后面的,例如where avg(math)其中math是實(shí)際字段但两,但avg(math)是求出來(lái)的平均分是虛擬字段鬓梅;
      需要進(jìn)行條件處理的虛擬字段,可以放在having后面镜遣;
    
    

    練習(xí)
    1.創(chuàng)建student表
    CREATE TABLE student ( id INT(10) NOT NULL PRIMARY KEY , name CHAR(20) NOT NULL, sex CHAR(4), birth YEAR, department CHAR(20), address CHAR(50) );
    2.向student表插入記錄的INSERT語(yǔ)句如下:
    INSERT INTO student VALUES( 901,'張老大', '男',1984,'計(jì)算機(jī)系', '北京市海淀區(qū)'); INSERT INTO student VALUES( 902,'張老二', '男',1987,'中文系', '北京市昌平區(qū)'); INSERT INTO student VALUES( 903,'張三', '女',1991,'中文系', '湖南省永州市'); INSERT INTO student VALUES( 904,'李四', '男',1993,'英語(yǔ)系', '遼寧省阜新市'); INSERT INTO student VALUES( 905,'王五', '女',1990,'英語(yǔ)系', '福建省廈門(mén)市'); INSERT INTO student VALUES( 906,'王六', '男',1989,'計(jì)算機(jī)系', '湖南省衡陽(yáng)市'); INSERT INTO student VALUES( 907,'老七', '男',1991,'計(jì)算機(jī)系', '廣東省深圳市'); INSERT INTO student VALUES( 908,'老八', '女',1990,'英語(yǔ)系', '山東省青島市');
    4.查詢student表的第2條到4條記錄
    5.從student表查詢所有學(xué)生的學(xué)號(hào)(id)己肮、姓名(name)和院系(department)的信息
    6.從student表中查詢計(jì)算機(jī)系和英語(yǔ)系的學(xué)生的信息
    7.從student表中查詢年齡24~26歲的學(xué)生信息
    8.從student表中查詢每個(gè)院系有多少女生
    9.把張老大的出生日期修改為1988,院系修改成中文系
    10.把所有學(xué)生的年紀(jì)增加5歲悲关;

    練習(xí)
    1.創(chuàng)建score表
    CREATE TABLE score ( id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT , name CHAR(20) NOT NULL , c_name CHAR(20) , grade INT(10) );
    2.向score表插入記錄的INSERT語(yǔ)句如下:
    INSERT INTO score VALUES(NULL,'張老大', '計(jì)算機(jī)',98); INSERT INTO score VALUES(NULL,'張老大', '英語(yǔ)', 80); INSERT INTO score VALUES(NULL,'張老二', '計(jì)算機(jī)',65); INSERT INTO score VALUES(NULL,'張老二', '中文',88); INSERT INTO score VALUES(NULL,'張三', '中文',95); INSERT INTO score VALUES(NULL,'李四', '計(jì)算機(jī)',70); INSERT INTO score VALUES(NULL,'李四', '英語(yǔ)',92); INSERT INTO score VALUES(NULL,'王五', '英語(yǔ)',94); INSERT INTO score VALUES(NULL,'王六', '計(jì)算機(jī)',90); INSERT INTO score VALUES(NULL,'王六', '英語(yǔ)',85); INSERT INTO score VALUES(NULL,'老七', '計(jì)算機(jī)',98);
    3.查詢李四的考試科目(c_name)和考試成績(jī)(grade)
    4.查詢計(jì)算機(jī)成績(jī)低于95的學(xué)生信息
    5.計(jì)算每個(gè)考試科目的平均成績(jī)
    6.計(jì)算每個(gè)學(xué)生的總成績(jī)
    7.查詢每個(gè)科目的最高分與平均分
    8.將計(jì)算機(jī)考試成績(jī)按從高到低進(jìn)行排序

作者:西門(mén)奄
鏈接:http://www.reibang.com/u/77035eb804c3
來(lái)源:簡(jiǎn)書(shū)
簡(jiǎn)書(shū)著作權(quán)歸作者所有谎僻,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寓辱,一起剝皮案震驚了整個(gè)濱河市艘绍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秫筏,老刑警劉巖诱鞠,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異这敬,居然都是意外死亡航夺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)崔涂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)阳掐,“玉大人,你說(shuō)我怎么就攤上這事冷蚂$员#” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蝙茶,是天一觀的道長(zhǎng)艺骂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)隆夯,這世上最難降的妖魔是什么钳恕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮蹄衷,結(jié)果婚禮上忧额,老公的妹妹穿的比我還像新娘。我一直安慰自己宦芦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布轴脐。 她就那樣靜靜地躺著调卑,像睡著了一般抡砂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恬涧,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天注益,我揣著相機(jī)與錄音,去河邊找鬼溯捆。 笑死丑搔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的提揍。 我是一名探鬼主播啤月,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼劳跃!你這毒婦竟也來(lái)了谎仲?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤刨仑,失蹤者是張志新(化名)和其女友劉穎郑诺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體杉武,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辙诞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了轻抱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飞涂。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖十拣,靈堂內(nèi)的尸體忽然破棺而出封拧,到底是詐尸還是另有隱情,我是刑警寧澤夭问,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布泽西,位于F島的核電站,受9級(jí)特大地震影響缰趋,放射性物質(zhì)發(fā)生泄漏捧杉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一秘血、第九天 我趴在偏房一處隱蔽的房頂上張望味抖。 院中可真熱鬧,春花似錦灰粮、人聲如沸仔涩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)熔脂。三九已至佩研,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間霞揉,已是汗流浹背旬薯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留适秩,地道東北人绊序。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像秽荞,于是被迫代替她去往敵國(guó)和親骤公。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一蚂会、數(shù)據(jù)庫(kù)系統(tǒng) 數(shù)據(jù)庫(kù)DataBase【DB】淋样,指的是長(zhǎng)期保存到計(jì)算機(jī)上的數(shù)據(jù),按照一定順序組織胁住,可以被各種用戶或...
    EndEvent閱讀 1,892評(píng)論 2 3
  • 一趁猴、數(shù)據(jù)庫(kù)系統(tǒng) 數(shù)據(jù)庫(kù)DataBase【DB】,指的是長(zhǎng)期保存到計(jì)算機(jī)上的數(shù)據(jù)彪见,按照一定順序組織儡司,可以被各種用戶或...
    fly5閱讀 389評(píng)論 0 0
  • MYSQL 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 MySQL基本操...
    Kingtester閱讀 7,811評(píng)論 5 116
  • 觀其大綱 page 01 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 M...
    周少言閱讀 3,157評(píng)論 0 33
  • 騎天大勝 焦點(diǎn)少年班堅(jiān)持分享第247天 2018.3.28 星期三 在這個(gè)院里居住,我真的很幸福余指,因?yàn)槲覀冊(cè)旱?..
    騎天大勝閱讀 140評(píng)論 0 0