Mysql第一天詳解

來源:互聯網
上載者:User

標籤:charset   ade   win   unix   除了   .net   account   ram   財務   

Mysql01

MySql01資料庫簡介
  1. 資料庫簡介

    之前使用的流操作把資料存放區到txt文檔上,對於修改/插入等,首先代碼繁瑣,對於查詢操作效率極低,另外,如果資料很大,不可能長期儲存在檔案中. 為瞭解決上述問題,我們需要使用資料庫

    • DB:檔案倉庫
    • DBMS:資料庫的管理軟體

    • 資料庫的分類

      • 關係型資料庫

        • 用"表"儲存資料,相關資料存入一張表中
      • 非關聯式資料庫

        • 索引值資料庫
        • 對象資料庫
  2. 主流關係型資料庫

    • Oracle 甲骨文 拉裡.艾力森 收費 核 閉源 賣產品

    • DB2 IBM,應用於大型系統,UNIX/linux,是oracle的主要競爭者

    • SQL Server 微軟 只能在windows下運行 .net(C#)

    • Mysql 免費 開源 賣服務

      2008被sun收購,除了5.1版本

      2010年sun超過2000億,被oracle74億收購

      Mysql牛X程式員,要求Mysql不能閉源,oracle口頭答應,沒簽合約

      mysql除了5.5版本,使用了oracle的核心技術,效能提升了15%-30%

      mysql威脅到了oracle市場,導致5.5版本閉源收費

      Mysql牛X程式員,mariadb

      mysql免費開源社區,支援mariadb

      mysql5.5 mariadb5.5 mysql5.6 mariadb10.0

  3. SQL基本操作

    SQL語言是操作資料庫的語言 每一種資料都有自己獨特的方言

    linux 開啟終端 輸入 mysql -u root -p斷行符號 password:(有密碼就輸入密碼斷行符號,沒密碼就直接斷行符號)

    • 操作資料庫

    • 對資料庫的操作

      1. 顯示所有的資料

        • show databases;
      2. 選定要操作的資料庫

        • use 庫名;
      3. 建立新的資料庫

        • create database 庫名;
      4. 查看建立資料庫的語句

        • show create database 庫名;
      5. 設定預設解碼的建立庫語句

        • create database demo default character set utf8;
      6. 刪除資料庫

        • drop database 庫名; drop database demo;
      7. 需求,建立庫demo1,要求預設編碼utf8,建立完成後,選定這個庫demo1.

      8. 顯示所有表

        • show tables;
      9. 查詢表結構

        • desc 表名;
    • 建立表

      • create table 表名( 列名 資料類型(長度) 約束, 列名 資料類型(長度) 約束, ... 列名 資料類型(長度) 約束 );

        create table stu(    id int not null,    name varchar(10),    sex  varchar(10));
    • 查看錶結構

      desc 表名;

      CREATE TABLE stu ( id int(11) NOT NULL, name varchar(10) DEFAULT NULL, sex varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql的引擎有兩種ENGINE=

- InnoDB    - 支援資料庫進階功能        - 事務        - 外鍵    - myisam    - 資料存放區準系統    - 效率非常高

-- 課堂練習

create table user(    name varchar(16),    age int)engine=innodb charset=gbk;- **對已經建立好的表進行修改**    1. 修改表名        - rename table 舊錶名 to 新表名        - rename table user to tb_user;    2. 修改表屬性(引擎,字元編碼)        - alter table 表名            engine=myisam charset=utf8;        - alter table tb_user            engine=myisam charset=utf8;    3. 添加欄位        - alter table 表名 add 新欄位 新欄位的資料類型 新欄位的約束 first;        - alter table tb_user add id int first;        - alter table tb_user add(            gender char(5),            tel char(11)        );    4. 修改欄位名稱        - alter table 表名 change 舊欄位名           新欄位名 新欄位資料類型;        - alter table tb_user change gender sex varchar(10);    5. 改資料類型        - 刪除某一個欄位,再添加一個新的        - 使用命令關鍵字直接修改        - alter table 表名 modify 欄位名 欄位新類型        - alter table tb_user modify tel varchar(11);    6. 修改列的順序        - alter table 表名 modify 目標列名 目標列資料類型 after 某一列列名        - alter table tb_user modify tel varchar(11) after age;        - 小練習,把sex 放到age欄位的前面        - alter table tb_user modify sex varchar(10) after name;    7. 刪除列        - alter table 表名 drop 列名        - alter table tb_user drop sex;- **刪除表**    - drop table 表名;    - DROP TABLE TB_USER;- **課堂練習1**        -- 建立員工表emp    create table emp(   //員工表        empno int(4),   //工號         ename varchar(10),//姓名        job varchar(10),  //工種        mgr int(4),       //上級領導的工號        hiredate date,    //入職時間        sal double(7,2),  //工資        comm double(7,2), //獎金        deptno int(4)     //所屬部門編號    );      create table dept(  //部門表        deptno int(4),  //部門編號        dname varchar(14),//部門名稱        loc varchar(13)   //部門辦公所在地    );
DML--對錶中資料做操作的語句INSERT語句
- insert into 表名 (列名1,列名2,...) values (值1,值2,...);insert into emp(empno,ename,job,sal) values (1001,‘lily‘,‘programmer‘,5500);insert into emp(empno,ename,job,sal) values (1001,"lily","programmer",5500);insert into emp(empno,ename,hiredate) values (1002,‘simth‘,‘18-01-24‘);
UPDATE語句
- update 表名 set 欄位名=值 where 列名=值;- update emp set ename=‘lucy‘ where empno=1001;- 1.把叫simth的員工的入職時間改為17年10月12日    update emp set hiredate="17-10-12" where ename="simth";- 2.插入新員工lilei,工號1003,工資3000,獎金5000,上級領導編號1002    insert into emp(empno,ename,sal,comm,mgr) values(1003,‘lilei‘,3000,5000,1002);- 3.插入新員工zhangsanfeng,工號1004,上級領導編號1001,工資8000,獎金1000    - 修改欄位類型    alter table emp modify ename varchar(20);    insert into emp(empno,ename,mgr,sal,comm) values(1004,‘zhangsanfeng‘,1001,8000,1000);- 4.插入新員工liuchuanfeng,工號1005,上級領導1004,入職時間18年01月22日,工資800,獎金2000- 5.修改zhangsanfeng的工資,修改為8500- 6.修改lilei的獎金,修改為2000- 7.修改liuchuanfeng的上級領導為1001,工資為3000    update emp set mgr=1001,sal=3000 where ename=‘liuchuanfeng‘
DELETE語句
- delete from 表名 where 條件- delete from emp where job is null;
select * from 表名DDL--是對錶本身操作的語句TRUNCATE語句
- truncate刪除表內容的原理    先把整張表刪除,然後重新建立一個表結構一模一樣的空表truncate table 表名truncate table emp;
DDL不支援事務,運行後馬上執行,不能復原DML支援事務作業

1.把上課所有的代碼重新敲一遍

練習1:
  1. 建立員工表emp 2.建立部門表dept;
練習2:
  1. 給dept表插入4條資料 10,‘ACCOUNTING‘,‘NEW YORK‘ --財務部 紐約 20,‘RESEARCH‘,‘DALLAS‘ --研究部 達拉斯市 30,‘SALES‘,‘CHICAGO‘ --銷售部 芝加哥 40,‘OPERATIONS‘,‘BOSTON‘ --運營部 波士頓
練習3:
  1. 建立 mydb 資料庫,使用 utf8 編碼
  2. 建立 t_item 商品表

  3. 在 t_item 表插入商品資料 7,‘蘋果‘,iphone X 9999 now()

  4. 修改 id 是7的商品,修改庫存量為20
  5. 刪除商品 7

insert into emp values (1001,‘hanmeimei‘,‘sal‘,1001,now(),3000,5000);

 

Mysql第一天詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.