九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
數(shù)據(jù)庫(一)數(shù)據(jù)庫優(yōu)點(diǎn),常用數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫,設(shè)計(jì)創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)類型,數(shù)據(jù)表操作,完整性約束(非空,主鍵,唯一,默認(rèn),外鍵)

數(shù)據(jù)庫:就是存放數(shù)據(jù)的倉庫,是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫,是對(duì)數(shù)據(jù)持久化的工具

使用數(shù)據(jù)庫的優(yōu)點(diǎn)
存儲(chǔ)大量數(shù)據(jù)
保持?jǐn)?shù)據(jù)信息的完整、一致性
數(shù)據(jù)的共享和安全

常用數(shù)據(jù)庫
ORACLE
甲骨文公司的產(chǎn)品
第一個(gè)支持SQL的數(shù)據(jù)庫,在高端數(shù)據(jù)應(yīng)用中分布最廣
SQLServer
微軟公司的產(chǎn)品
將關(guān)系型數(shù)據(jù)庫應(yīng)用推向普及化,在小型機(jī)中很好的適用性
DB2
IBM公司的產(chǎn)品
基于UNIX系統(tǒng),主要應(yīng)用在商務(wù)大型平臺(tái)
MySQL
瑞典MySQLAB公司產(chǎn)品,ORACLE旗下產(chǎn)品
主要應(yīng)用在中小型網(wǎng)站,速度快體積小,成本低,開源

什么是DBMS
(DataBase Management System)數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和操作,確保數(shù)據(jù)操作的安全性和完整性。用戶通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù)


數(shù)據(jù)庫中的信息是如何記錄的?
MySQL以庫為單位存儲(chǔ)數(shù)據(jù),具體的數(shù)據(jù)內(nèi)容存儲(chǔ)在數(shù)據(jù)表中

什么是DBMS
(DataBase Management System)數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和操作,確保數(shù)據(jù)操作的安全性和完整性。用戶通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù)


數(shù)據(jù)庫中使用SQL語句訪問
Java語言智能被JVM識(shí)別運(yùn)行,在數(shù)據(jù)庫中無法識(shí)別。開發(fā)人員需要和數(shù)據(jù)庫交互就需要使用數(shù)據(jù)庫所能識(shí)別的語言

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

SQL語言包含4個(gè)部分
  1.DDL  (Data Definition Language ) 數(shù)據(jù)定義語言 如數(shù)據(jù)表的建立修改刪除等
  2.DML  (Data Manipulation Language) 數(shù)據(jù)操作語言 如對(duì)數(shù)據(jù)的增刪改
  3.DQL  (Data Query Language ) 數(shù)據(jù)查詢語言 如對(duì)數(shù)據(jù)的查詢
  4.DCL  (Data Control Language) 數(shù)據(jù)控制語言 如事務(wù)的提交回滾,權(quán)限控制等

不同的數(shù)據(jù)庫雖然都通用SQL語言,但是還是會(huì)存在一定的差異性,主要體現(xiàn)在以下幾個(gè)方面:
  1.SQL中的關(guān)鍵字,如SQLServer中有top關(guān)鍵字,mysql中有l(wèi)imit關(guān)鍵字
  2.函數(shù),每個(gè)數(shù)據(jù)庫有著獨(dú)立的函數(shù)庫,函數(shù)可以在SQL中直接調(diào)用
  3.SQL編程擴(kuò)展:定義變量、條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

數(shù)據(jù)庫的高級(jí)應(yīng)用主要體現(xiàn)在SQL編程上:觸發(fā)器、存儲(chǔ)過程、函數(shù)、游標(biāo)

SQL的注意項(xiàng):
  1.SQL語句不區(qū)分大小寫
  2.每行SQL語句使用分號(hào)結(jié)束(不寫分號(hào)也可以,但是多條語句同時(shí)執(zhí)行的時(shí)候必須要有分號(hào),所以最好平時(shí)都寫分號(hào))

SQL中的注釋:
  單行注釋使用    --
  多行注釋使用   /*      */

創(chuàng)建數(shù)據(jù)庫:(在Navicat點(diǎn)擊新建查詢,然后在彈出的界面中進(jìn)行編寫)
CREATE  DATABASE  數(shù)據(jù)庫名  [CHARACTER SET 字符集](中括號(hào)中的可寫可不寫,只要安裝時(shí)指定了UTF-8字符集就可以不寫)

創(chuàng)建以后查找創(chuàng)建的文檔實(shí)在C——Users——Administrator——文檔——Navicat——MySQL——Servers——localhost_3306——找到指定的數(shù)據(jù)名稱

-- 創(chuàng)建數(shù)據(jù)庫create database geekhome;

刪除和創(chuàng)建可以在同一個(gè)界面,因?yàn)榭梢詥为?dú)運(yùn)行一句代碼,即使寫了刪除語句,但是沒有運(yùn)行,也是刪除不了的

-- 刪除數(shù)據(jù)庫drop database geekhome;
選擇使用的數(shù)據(jù)庫:選擇的是哪個(gè)庫,新建的數(shù)據(jù)就會(huì)保存在哪個(gè)庫
-- 選擇使用的數(shù)據(jù)庫use geekhome;

創(chuàng)建數(shù)據(jù)表

-- 創(chuàng)建數(shù)據(jù)表create table test_table(
test_name varchar(20);
)

創(chuàng)建表之前要先進(jìn)行設(shè)計(jì)

數(shù)據(jù)表設(shè)計(jì):
  良好的數(shù)據(jù)庫設(shè)計(jì)
  節(jié)省數(shù)據(jù)存儲(chǔ)空間
  保證數(shù)據(jù)的完整性
  方便進(jìn)行數(shù)據(jù)庫應(yīng)用程序的開發(fā)

糟糕的數(shù)據(jù)庫設(shè)計(jì):
  數(shù)據(jù)冗余,空間浪費(fèi)
  數(shù)據(jù)修改或插入造成異常

數(shù)據(jù)表設(shè)計(jì)步驟:
  分析需求,實(shí)現(xiàn)數(shù)據(jù)建模
  滿足數(shù)據(jù)表的三范式
  創(chuàng)建數(shù)據(jù)表
  實(shí)施數(shù)據(jù)表的完整性約束

數(shù)據(jù)庫三范式:完成數(shù)據(jù)分析建模后,數(shù)據(jù)表要需要進(jìn)行三范式設(shè)計(jì)

第一范式
  確保列的原子性,每個(gè)數(shù)據(jù)列都是不可分割的單元

第二范式
  每行數(shù)據(jù)都應(yīng)根據(jù)一個(gè)依賴列被唯一區(qū)分

第三范式
  行中的每列都應(yīng)直接關(guān)聯(lián)主鍵,即不能存在其他表主鍵以外的字段

特殊情況:

  編號(hào)和字段進(jìn)行與表格間的關(guān)聯(lián)是,編號(hào)占存更少,字段字符串產(chǎn)生的冗余更多

  但是如果對(duì)一個(gè)字段有著非常高度的查詢,則可以犧牲內(nèi)存產(chǎn)生冗余使用字段進(jìn)行表格間的關(guān)聯(lián)

所有結(jié)構(gòu)相同的數(shù)據(jù),都應(yīng)存儲(chǔ)在一個(gè)表格中,不同點(diǎn)用一個(gè)屬性進(jìn)行區(qū)分

創(chuàng)建數(shù)據(jù)表:
  create  table  表名(
    字段名 數(shù)據(jù)類型(長度),
    字段名 數(shù)據(jù)類型(長度)
  )

char是定長字符     如果聲明文本類型為char(10),實(shí)際的值為’tom’,在磁盤中分配的字節(jié)空間還是要占據(jù)10個(gè)字節(jié)

varchar 是變長字符     如果聲明文本類型為varchar(10),實(shí)際的值為’tom’,在磁盤中分配的字節(jié)空間還是要占據(jù)3個(gè)字節(jié)

數(shù)據(jù)表操作
刪除數(shù)據(jù)表:
drop  table 表名
添加列:
alter  table  表名  add  列名  數(shù)據(jù)類型
修改列類型:表中沒有數(shù)據(jù)的時(shí)候才能修改
alter  table  表名  modify  列名  新數(shù)據(jù)類型
修改列名:
alter  table  表名  change 原列名  新列名  類型
刪除列:
alter  table  表名  drop  column 列名

查看數(shù)據(jù)表:

select  *  from  表名

完整性約束
創(chuàng)建數(shù)據(jù)表后需要添加表的約束條件,確保表數(shù)據(jù)的完整性
完整性=數(shù)據(jù)+可靠+準(zhǔn)確

完整性約束
  輸入的類型是否正確?
  年齡必須是數(shù)值
  輸入的格式是否正確
  身份證號(hào)碼為18位
  是否在允許的范圍內(nèi)
  性別只能為男女
  是否存在重復(fù)輸入
  同一個(gè)學(xué)生檔案錄入了兩次

域完整性:對(duì)列提出要求

實(shí)體整型:對(duì)行提出要求

引用完整性:關(guān)聯(lián)的值不能隨便寫

實(shí)體完整性約束:主鍵約束和唯一約束
主鍵約束:
一張表中只能擁有一個(gè)主鍵
主鍵應(yīng)具備唯一性和穩(wěn)定性

主鍵值不能為空

主鍵約束的使用

  方法一:

    create  table  `user`(
      userId  int   primary  key,
    )

  方法二:

    create  table `user`(
      userId int,
      constraint   約束名  primary  key(主鍵列名稱)
    )

  方法三:

    alter  table  表名  add  constraint  約束名  primary key(主鍵列名稱)

刪除主鍵:

  alter  table  表名  drop  primary key

唯一約束:防止重復(fù)數(shù)據(jù)的產(chǎn)生
表中可以擁有多個(gè)唯一約束

唯一約束的使用:

  alter  table  表名  add  constraint  約束名  unique(列名稱)

域完整性約束:
  1.非空約束:數(shù)據(jù)列是否必填 

    在列名后面添加  not null

CREATE TABLE `user`(
    userId int primary key,
    userName varchar(20) not null)

  2.默認(rèn)約束:數(shù)據(jù)列是否具備默認(rèn)值

    在列名設(shè)置后面添加 default ' 默認(rèn)值內(nèi)容’

CREATE TABLE `user`(
    userId int primary key,
    userName varchar(20) default  '默認(rèn)值’
)

  3.檢查約束(MySQL中無效):數(shù)據(jù)列是否有效

如果部門表的經(jīng)理編號(hào)引用自員工表的員工編號(hào),需要通過外鍵約束限制經(jīng)理編號(hào)只能寫入員工表的員工編號(hào)

在該過程中,部門表引用員工表,部門表稱為外表,員工表稱為主表

外表中的經(jīng)理編號(hào)又稱為外鍵,外鍵只能引用主表的主鍵或者是唯一鍵

引用完整性約束:

  外鍵約束:

    alter   table   外表表名[引用表]   add   constraint   約束名   foreign   key(外鍵列)   reference   主表名名[被引用表](主表中的主鍵)

alter table score add constraint fk_uid foreign key(uid) references user(userId)

刪除主鍵約束

  alter  table  表名  drop  primary  key

刪除唯一約束

  alter  table  表名  drop  index  約束名

刪除外鍵約束

  alter  table  表名  drop  foreign  key  外鍵名

實(shí)例一:

-- 創(chuàng)建數(shù)據(jù)庫create database geekhome;-- 刪除數(shù)據(jù)庫drop database geekhome;-- 選擇使用的數(shù)據(jù)庫use geekhome;-- 創(chuàng)建數(shù)據(jù)表create table users
(
    userid int,
    userName varchar(20),
    birthday datetime,
    email varchar(50),
    detail text);-- 創(chuàng)建表的時(shí)候添加主鍵約束方式一-- 每張表中只能具備一個(gè)主鍵create table users
(
    userid int primary key,
    userName varchar(20),
    birthday datetime,
    email varchar(50),
    detail text);-- 創(chuàng)建表的時(shí)候添加主鍵約束方式二create table users
(
    userid int,
    userName varchar(20),
    birthday datetime,
    email varchar(50),
    detail text,    constraint pk_userid primary key(userid)
);-- 在創(chuàng)建表之后單獨(dú)添加主鍵alter table//修改表 users add constraint pk_userid primary key(userid);-- 添加唯一約束alter table users add constraint uq_username unique(username);-- 刪除主鍵alter table users drop primary key-- 建表時(shí)添加非空約束-- 默認(rèn)約束create table users
(
    userid int,
    userName varchar(20) not null, -- 非空約束
    birthday datetime,
    email varchar(50) default 'xxx@geekhome.com', -- 默認(rèn)約束
    detail text,    constraint pk_userid primary key(userid)
);-- 創(chuàng)建部門表create table department
(
    depId int primary key,
    depName varchar(50) not null,
    managerId int -- 部門經(jīng)理的編號(hào)來自于users表的編號(hào))-- 為部門表中的經(jīng)理編號(hào)添加外鍵約束alter table department add constraint fk_managerId foreign key(managerId)references users(userid)-- 刪除數(shù)據(jù)表drop table users;drop table department;-- 添加新的數(shù)據(jù)列alter table users add age int;-- 修改列的數(shù)據(jù)類型alter table users modify email tinytext; 

-- 修改列的名稱alter table users change email address varchar(100);-- 刪除列alter table users drop column detail;-- 查看數(shù)據(jù)表select * from users;select * from department;

實(shí)例二:

-- 創(chuàng)建數(shù)據(jù)庫  數(shù)據(jù)庫名稱不能重復(fù)create database geekhome;-- 使用數(shù)據(jù)庫use geekhome;-- 刪除數(shù)據(jù)庫drop database geekhome;-- 創(chuàng)建數(shù)據(jù)表create table `user`(    -- 添加主鍵
    userId int primary key,
    username varchar(50),
    birthday date,
    registDate timestamp,
    remoke text)create table `user`(    -- 添加主鍵
    userId int,
    username varchar(50),
    birthday date,
    registDate timestamp,
    remoke text,    -- 添加主鍵
    constraint pk_userId primary key(userId)
)create table `user`(    -- 添加主鍵
    userId int,
    username varchar(50),
    birthday date,
    registDate timestamp,
    remoke text)create table `user`(    -- 添加主鍵
    userId int primary key,
    username varchar(50) not null,-- username非空
    email varchar(50) default 'xxx@igeekhome.com',
    birthday date,
    registDate timestamp,
    remoke text)-- 創(chuàng)建成績表create table score(
    uid int,
    courseName varchar(20) not null,
    score DECIMAL(4,1)
)-- 新建數(shù)據(jù)表后添加主鍵alter table user add constraint pk_userid primary key(userId);-- 添加唯一約束,表中可以有多個(gè)唯一鍵alter table user add constraint uq_username unique(username);-- 添加外鍵約束,被引用的表稱為主表,引用主表的表稱為外表;-- 外表中引用主表的列稱為外鍵列,主表中被引用的列必須是主鍵或者唯一鍵alter table score add constraint fk_uid foreign key(uid) references user(userId)-- 刪除主鍵約束alter table `user` drop primary key;-- 刪除唯一約束alter table user drop index uq_username-- 刪除外鍵alter table score drop foreign key fk_uid-- 添加表列alter table user add sex varchar(1)-- 刪除列alter table user drop column sex-- 修改列的數(shù)據(jù)類型alter table user modify username varchar(50)-- 修改列的名稱alter table user change username uname varchar(50)-- 刪除數(shù)據(jù)表drop table user;drop table score;-- 查看數(shù)據(jù)select * from user;
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
l臨時(shí)表
Oracle PL/SQL開發(fā)基礎(chǔ)(第三彈:修改表)
【任務(wù)3-4】使用Create Table語句創(chuàng)建多個(gè)包含約束的數(shù)據(jù)表
【第10天】SQL進(jìn)階-表的創(chuàng)建、修改與刪除(SQL 小虛竹)
《SQL Server》之 表的創(chuàng)建和管理
MySQL基礎(chǔ)入門使用和命令的使用
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服