国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

sql語法 學習了解

2024-07-21 02:52:16
字體:
來源:轉載
供稿:網友
sql 的分類:    DDL: 數據定義語言  create drop alter             DML:  數據操作語言   記錄    DQL:數據查詢語言 : 非官方的  查詢語句    DCL:數據控制語言  :  事物,管理net start MySQLmysql -u用戶名 -p密碼DDL: 數據庫定義語言                創建數據庫: create database 數據庫名稱;           刪除數據庫:drop database 數據庫名稱;        常用命令:  查看所有數據庫 :  show databases;                             切換或者使用數據庫:  user 數據庫名稱;        操作表:                        創建表: create table 表名(字段描述,字段名稱);                                       字段描述: 字段名稱,字段類型  [約束 ]                                   create table user ( id Int  PRimary key  auto_increment , username varchar(20) )                    查看所有表:  show tables;                    查看表結構:  desc  表名;                    看看建表語句: show create table  表名;                    修改表名: alter table 表名(舊表名)  rename  to  表名(新表名);                    添加字段:   alter  table  表名 add [column] 字段描述;                                        例如: alter table user add passWord varchaer(20);                    修改字段名稱:   alter table 表名  change  字段名稱(舊字段)  字段名稱(新字段名稱) 字段描述                    修改字段描述: alter  table 表名  modify  字段名稱   字段類型 [約束] ;                    刪除字段: alter table 表名  drop  字段名;                    刪除表:   drop  table  表名;DML: 數據操作語言  關鍵字  insert  update   delete                    注意: 若字段類型為數字,可以省略引號,盡量別省略              插入:  insert into  表名  values(字段值1,字段值2,字段值n);--默認插入所有字段,必須保證value后的類型和順序要與鍵表結構順序一致                                      insert into 表名 (字段名,字段名)  values(字段值,字段值);--插入指定的值, 必須保證和創表的類型與順序一致            修改:  update 表名  set 字段名=字段值, 字段名1=字段值  [條件查詢] ;             刪除: delete from 表名  【where】;DQL: 數據查詢語言                select * form 表名  where  group by    having    order by  ase| desc                select * from 表名;        select 字段名1, 字段名2   from  表名;        select  distincet 字段名  from 表名 ;  //  distincet  去重的意思        可以在查詢的結果上進行運算,但是不影響數據庫里面的值        select 字段名 + 10 from 表名;                起別名(給列或者字段別名)        select 字段名 + 10  新別名  from 表名;            select 字段名 + 10  ’新別名‘  from 表名;              select 字段名 + 10  ·新別名·  from 表名;             條件查詢            select *from 表名 where 字段名=value;    select *form 表名 where 字段名 > 20;    select * from 表名  where 字段名 like 匹配規則    匹配個數, 匹配內容      //模糊查詢    select * from 表名  where 字段名 like ”__“    占2個位置    select * from 表名  where 字段名 like %龍         select * from 表名  where 字段名 like 龍%    select * from 表名  where 字段名 like %龍%    select *form 表名 where 字段名 = 20 or 字段名 = 30 or  字段名=40;    select *form 表名 where 字段名 in(20,30,40);    select *form 表名 where 字段名 between 20 and 40;    select *from 表名  order by 字段名  (asc升序, desc 降序)    select * from 表名 where 字段名  like ”“  order by    聚合函數 (忽略null值)                 sum()   avg()  max() min() count()    獲得總和    select sum(字段名) from 表;        獲得平均數    select avg(字段名) form 表名;    round 函數,四舍五入    select round(avg(字段名),2)from 表名;        計算    select count(*) form 表名   獲得一共多少條記錄    分組  在where 后面  order by前面    where 與 having區別    where 是分組前的數據進行過濾,后面不能使用聚合函數    having是分組后的數據進行過濾, 可以使用聚合函數    select 字段名, count(*) from 表名 group by 字段名  ;      select 字段名, sum(字段名)   from 表名 group by 字段名;     select 字段名, sum(字段名)   from 表名 group by 字段名  having > 200; 數據類型的問題    mysql                java     tinyInt                     byte   smallInt                   short      Int                          int    bigInt                     long         varchar                  varChar/char   (varChar 可變長度  char不可變長度)     int                      boolean    float                     float    double(5,2)           double      注”:double(5,2) 改小數長度為5,小數占2位                                    date                       java.sql.Date   time                        java.sql.Time   timesTamp             java.sql.timesTamp   dateTime  日期加+時間       無                            text (最大4g廠文件)     java.sql.clob()存長文本    blob                             java.sql.blob() 存文二進制文件(電影)約束:         作用:為了保證數據的有效性與完整性        mysql常用約束:  primary  key 主鍵約束                                    unique  唯一約束                                    not null  非空                                    foreign  key 外鍵約束        主鍵約束:  修飾過過的字段唯一非空,一張表只能有一個主鍵,這個主鍵可以保函多個字段                            方式1: 鍵表的同時添加約束          字段名稱  字段類型 primary key                                                      方式2: 鍵表的同時在約束區域添加約束          primary key(字段1,字段2)                                           creat table user (                                                        id int,                                                        username varchar(20),                                                        primary key(id)                                            );                              方式3: 添加完表之后,通過修改表結構,修改主鍵                                              alter table 表名 add primary key(字段名1,字段名2)  (聯合主鍵)        唯一約束: 被修飾過的字段唯一, 對null值不起作用                            方式1: 鍵表的同時添加約束          字段名稱  字段類型 unique                                                    方式2: 鍵表的同時在約束區域添加約束     unique(字段1,字段2)                                           creat table user (                                                        id int,                                                        username varchar(20),                                                        unique(id)                                            );                              方式3: 添加完表之后,通過修改表結構,修改主鍵                                              alter table 表名 add unique(字段名1,字段名2)  (聯合主鍵)    非空約束: 被修飾的字段非空                         creat table user (                                                        id int  not null,                                                        username varchar(20),                                                                                                    );    truncate: 清空表                   格式: truncate 表名;  //清空表,重新創建一張新表                                delete 屬于逐條刪除    auto_increment : 要求, 被修飾的字段要滿足自增,被修飾的字段必須是key,一般是primary key                            多表操作     sql:舉例操作:網上商城網上商城的實體:                        1 用戶                 2 訂單         3 商品          4分類    常見關系:                            一對多關系: 用戶和訂單  分類和商品            多對多關系: 訂單和商品               一對一關系: 丈夫和妻子            ER圖,可以描述實體與實體的關系                               一對多關系: 一稱之為主表  多稱之為 從表   會在多表一份添加一個字段,字段名稱稱之為主表_id                        與主表的主鍵類型保持一致,我們稱之為外鍵    用戶和訂單列表:                用戶表:  create  table user(                                    id  int primary  key auto_increment,                                    userName  varchar(20)                            )                訂單列表                                 create  table orders(                                    id  int auto_increment,                                    totlePrice double,                                    user_id int,                                                             )                  添加外鍵約束:在多表的一方添加約束                   alter  table 多表名稱  add foreign key (外鍵名稱) reference 一表名稱(主鍵)                   alter table orders add foreight key(user_id)  reference  user(id)                       添加了外鍵之后又如下特點,主表中不能刪除從表中已經引用的數據 ,從表中不能添加主表        中不存在的數據    多對多關系:商品和訂單                         create  table orders(                                    id  int auto_increment,                                    totlePrice double,                                    user_id int,                                                             )                     create  table product(                                    id  int auto_increment,                                    pname varchar(20)                                    Price double,                                                                                                )                                     create  table orderItem(                                                oid  int ,                                    pid  int ,                                                                                            )                在開發中,我們一般引入中間表來表示他們的關系,在中間表中,存放2表的主鍵,然后一般還會將這個兩個主鍵設置成中間表的聯合主鍵,將多對多變為2個一對多,為了保證數據的一致性,在中間表上添加2個外鍵即可    alter table orderItem add foreign key(oid) reference orders(id)alter table orderItem add foreign key(pid) refence product(id)多表查詢笛卡爾迪: 多張表無條件的聯合查詢,沒有任何意義                    select A表.* ,B表  from  A表,B表;內連接 :                 格式1: 顯示的內連接  select A表.* , B表.* from A[inner] join B on AB的鏈接條件                格式2: 隱示的內連接  select A表.*, B表.* from A ,B  where ab的鏈接條件     外鏈接            1 左外鏈接  select A表.*, B表.* from A表 left[outer] join B表 on 鏈接條件;                先展示join左邊的表的所有數據,根據條件關聯查詢join 右邊的表(b),符合條件的展示出來                不符合的null展示            2 右外鏈接 select A表.*, B表.* from B表 right [outer] join A表  on 鏈接條件                先展示join右邊的數據,根據條件關聯查詢join左邊的表的數據,符合條件的則展示,不符合        條件則以null顯示                                子查詢例如:查詢用戶的訂單,沒有訂單的用戶不顯示 隱示的內連接: select user.*, order.* from user, orders where user.id=orders.user_id;顯示的內連接:select user.*, order.* from user join orders on  user.id=orders.use.id;查詢所有用戶的訂單詳情左外連接:   select user.*, order.* from user left join orders on  user.id=orders.use.id;右外鏈接:  select user.*, orders.* form orders join user on  user.id=orders.use.id;子查詢一個查詢依賴與另一個查詢      例如:查詢用戶為張三的詳情      select *from orders where user_id = (select id from user where username = '張三');      查詢出訂單價格大于300的用戶信息  in 對應多個信息       select * from user where  user_id in (select user_id from orders where totleprice > 300);             查詢出訂單價格大于300的訂單信息及用戶信息  as 給表起別名      //內鏈接      select user.*,order.* from user,orders where user.id = order.user_id and order.price > 300;       //子查詢      select user.* , tamp.* from user, (select *from order where pice > 300) as tamp where user.id=tamp.user_id 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖边县| 普兰店市| 来安县| 白水县| 灌阳县| 青州市| 松桃| 威信县| 韶关市| 龙川县| 抚顺县| 饶平县| 盐津县| 昂仁县| 枝江市| 永顺县| 麻城市| 南宫市| 广西| 安宁市| 利辛县| 屏东县| 宁远县| 军事| 济阳县| 泽库县| 芜湖县| 驻马店市| 玉屏| 读书| 霍城县| 霍林郭勒市| 鲁山县| 聂荣县| 乌什县| 襄樊市| 瑞丽市| 昌平区| 长沙县| 方正县| 淳安县|