數據庫_7_SQL基本操作——表操作

SQL基本操作——表操作

建表的過程就是聲明列的過程。

表與字段是密不可分的。

一、新增數據表

create table [if not exists] 表名(
字段名字 數據類型,
字段名字 數據類型  -- 最后一行不需要逗號
)[表選項];if not exists:如果表名不存在,那么就創建,否則不執行創建代碼,起到檢查功能的作用
表選項:控制表的表現字符集:charset/character set 具體字符集; --保證表中數據存儲的字符集校對集:collate 具體校對集; --表采用數據比較的方式存儲引擎:engine 具體的存儲引擎(innodb和myisam)

?舉例:

-- 創建表
create table if not exists student(
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;

?

任何一個表的設計都必須指定數據庫

方案1:顯示的指定表所述的數據庫

  crate table 數據庫名.表名;???? --將當前數據表創建到指定的數據庫下

-- 創建表
create table if not exists mydatabase.student(  -- 顯示的將student表放到mydatabase數據庫下
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;

方案2:隱式的指定表所屬的數據庫:先進入到某個數據庫環境,然后這樣創建的表自動歸屬到某個指定的數據庫

  進入數據庫環境:use 數據庫名字;

-- 先進入數據庫,再創建表
use mydatabase;
create table class(
name varchar(10),
room varchar(10)
)charset utf8;

?

當創建數據表的SQL指令執行之后,到底發生了什么?

  1. 指定數據庫下已經存在對應的表
  2. 在數據庫對應的文件夾下,會產生對應表的結構文件(跟存儲引擎有關系)

二、查看數據表

?數據庫能查看的方式,表都可以查看。

  • 查看所有表:show tables;

  

  • 查看部分表:模糊匹配???? show tables like 'pattern';? --pattern是匹配模式,? %:表示匹配多個字符, _:表示匹配單個字符

    -- 查看以s結尾的表(盡量不要用這種方式查,效率低)
    show tables like '%s';
    

  • 查看表的創建語句:show create table 表名;

    -- 查看表的創建語句
    show create table student\g -- \g等價于;
    show create table student\G -- \G表示將查到的結構旋轉90度變成縱向
    

  • 查看表結構:查看表中的字段信息?????? desc/describe/show columns from 表名;

    -- 查看表結構
    desc class;
    describe class;
    show columns from class;
    

    注:上圖最后一行寫錯了,將form改成from

三、修改數據表

表本身存在,還包括字段,所以表的修改分為兩個部分:修改表本身和修改字段

修改表本身:

表本身可以修改:表名和表選項

  修改表名:rename table 老表名 to 新表名;

-- 重命名:student表 -> my_student(取數據庫名字前兩個字母)
rename table student to my_student;

    

  修改表選項:字符集,校對集和存儲引擎  alter table 表名 表選項 [=] 值;

show create table my_student;-- 修改表選項:比如字符集
alter table my_student charset =GBK;show create table my_student;

?  

  

修改字段:

  字段操作很多:新增,修改,重名,刪除

  • 新增字段??? alter table 表名 add [column] 字段名 數據類型 [列屬性] [位置]

    位置:字段名可以存放表中的任意位置,存放方式分為兩類,第一類為first:第一個位置,第二類為after:在哪個字段之后(after 字段名;默認的是在最后一個字段之后)

use mydatabase;
desc my_student;
-- 給學生表增加ID放到第一個位置
alter table my_student
add column id int
first; -- mysql會自動尋找分號作為語句結束符
desc my_student;

?  

  • 修改字段(通常修改屬性或者數據類型)???????? alter table 表名 modify 字段名 數據類型 [屬性] [位置];

desc my_student;
-- 將學生表中的number學號字段變成固定長度,且放到第二位(id之后)
alter table my_student
modify number char(10)
after id;
desc my_student;

?  

  • 重名字段? alter table 表名 change 舊字段 新字段名 數據類型 [屬性] [位置];

    desc my_student;
    -- 修改學生表中的gender字段為sex
    alter table my_student
    change gender sex varchar(10);
    desc my_student;
    

    ?

  • 刪除字段??? alter 表名 drop 字段名;

    desc my_student;
    -- 刪除學生表中的年齡字段(age)
    alter table my_student
    drop age;
    desc my_student;
    

    ?

    小心:如果表中已經存在數據,那么刪除字段會清空該字段的所有數據(不可逆)

注:varchar

VARCHAR(M)是一種比CHAR更加靈活的數據類型,同樣用于表示字符數據,但是VARCHAR可以保存可變長度的字符串。其中M代表該數據類型所允許保存的字符串的最大長度,只要長度小于該最大值的字符串都可以被保存在該數據類型中。因此,對于那些難以估計確切長度的數據對象來說,使用VARCHAR數據類型更加明智。

四、刪除數據表

drop table 表名1,表名2,...;?? -- 可以一次性刪除多張表(刪除數據庫沒有這種方式;盡量別用這種一次性刪表的方式太危險)

show tables;
-- 刪除數據表
drop table class;
show tables;

當刪除數據表指令執行之后發生了什么?

  1. 在表空間中,沒有了指定的表(數據也沒有了)
  2. 在數據對應的文件夾下,表對應的文件(與存儲引擎有關)也會被刪除

刪除數據表指令執行之后:

?

?注意:刪除有危險,操作需謹慎(不可逆)

轉載于:https://www.cnblogs.com/tianqizhi/p/8987911.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280424.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280424.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280424.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EXT.NET 更改lable和Text的顏色

2019獨角獸企業重金招聘Python工程師標準>>> &#xfeff;&#xfeff; <ext:TextField ID"TextField1" " runat"server" FieldLabel"編號" LabelWidth"60" LabelAlign"Left" LabelStyle"color:red…

rest_framework08:分頁器/根據ip進行頻率限制

分頁器 # 查詢所有&#xff0c;才需要分頁 from rest_framework.generics import ListAPIView# 內置三種分頁方式 from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination,CursorPaginationPageNumberPaginationclass MyPageNumberPagination(Pag…

NYOJ746 整數劃分

該題是一道區間DP的題目&#xff0c;做了幾道區間DP&#xff0c;說起來高大上&#xff0c;也就是DP在區間內的形式而已&#xff0c;核心思想還是要想到轉移->規劃。 題意是在n位數中間加m個稱號&#xff0c;使得最終乘積最大。 狀態轉移方程如下&#xff1a; dp[ i ][ j ]ma…

Spring MVC實現文件下載

方法一&#xff1a; RequestMapping("/testHttpMessageDown")public ResponseEntity<byte[]> download(HttpServletRequest request) throws IOException {File file new File(request.getSession().getServletContext().getClassLoader().getResource("…

[MobX State Tree數據組件化開發][3]:選擇正確的types.xxx

?系列文章目錄? 定義Model時&#xff0c;需要正確地定義props中各字段的類型。本文將對MST提供的各種類型以及類型的工廠方法進行簡單的介紹&#xff0c;方便同學們在定義props時挑選正確的類型。 前提 定義props之前&#xff0c;有一個前提是&#xff0c;你已經明確地知道這…

ubuntu系統備份和還原_如何使用Aptik在Ubuntu中備份和還原您的應用程序和PPA

ubuntu系統備份和還原If you need to reinstall Ubuntu or if you just want to install a new version from scratch, wouldn’t it be useful to have an easy way to reinstall all your apps and settings? You can easily accomplish this using a free tool called Apti…

rest_framework09:自動生成接口文檔(簡略)

coreapi 參考 python/Django-rest-framework框架/8-drf-自動生成接口文檔 | Justin-劉清政的博客 Swagger 很多語言都支持&#xff0c;看起來用的人多。 參考fastapi的界面

AppDomainManager后門的實現思路

本文講的是AppDomainManager后門的實現思路&#xff0c;0x00 前言從Casey SmithsubTee學到的一個技巧&#xff1a;針對.Net程序&#xff0c;通過修改AppDomainManager能夠劫持.Net程序的啟動過程。 如果劫持了系統常見.Net程序如powershell.exe的啟動過程&#xff0c;向其添加…

所有內耗,都有解藥。

你是否常常會有這種感覺&#xff1a;剛開始接手一件事情&#xff0c;腦海中已經幻想出無數個會發生的問題&#xff0c;心里也已篤定自己做不好&#xff1b;即使別人不經意的一句話&#xff0c;也會浮想一番&#xff0c;最終陷入自我懷疑&#xff1b;隨便看到點什么&#xff0c;…

ABAP 通過sumbit調用另外一個程序使用job形式執行-簡單例子

涉及到兩個程序&#xff1a; ZTEST_ZUMA02 (主程序)ZTEST_ZUMA(被調用的程序&#xff0c;需要以后臺job執行)"ztest_zuma 的代碼DATA col TYPE i VALUE 0.DO 8 TIMES.MESSAGE JOB HERE TYPE S.ENDDO.程序ZTEST_ZUMA是在程序ZTEST_ZUMA02中以job的形式調用的&#xff0c;先…

那些影響深遠的彎路

靜兒最近反思很多事情&#xff0c;不僅是當時做錯了。錯誤定式形成的思維習慣對自己的影響比事情本身要大的多。經常看到周圍的同事&#xff0c;非常的羨慕。他們都很聰明、有自己的方法。就算有些同事工作經驗相對少一些&#xff0c;但是就像在廢墟上創建一個輝煌的城市要比在…

如何使用APTonCD備份和還原已安裝的Ubuntu軟件包

APTonCD is an easy way to back up your installed packages to a disc or ISO image. You can quickly restore the packages on another Ubuntu system without downloading anything. APTonCD是將安裝的軟件包備份到光盤或ISO映像的簡便方法。 您可以在不下載任何東西的情況…

rest_framework10:base64補充/修改頭像

base64補充 # base64 變長&#xff0c;可反解 # md5 固定長度&#xff0c;不可反解# base64 編碼和解碼 import base64 import json dic{name:test,age:18} dic_strjson.dumps(dic)retbase64.b64encode(dic_str.encode(utf-8)) print(ret)# 解碼 ret2base64.b64decode(ret) pri…

next_permutation(全排列算法)

next_permutation(全排列算法) STL提供了兩個用來計算排列組合關系的算法&#xff0c;分別是next_permutation和prev_permutation。 首先解釋下全排列&#xff0c;顧名思義&#xff0c;即一組數的全部排列的情況。 next_permutation 即列出一組數的全部排列情況&#xff0c;不過…

C#自定義字符串壓縮和解壓縮源碼庫

如下的內容是關于C#自定義字符串壓縮和解壓縮庫的內容。class ZipLib{public static string Zip(string value){byte[] byteArray new byte[value.Length];int indexBA 0;foreach (char item in value.ToCharArray()){byteArray[indexBA] (byte)item;}System.IO.MemoryStrea…

使用 Visual Studio 2022 調試Dapr 應用程序

使用Dapr 編寫的是一個多進程的程序, 兩個進程之間依賴于啟動順序來組成父子進程&#xff0c;使用Visual Studio 調試起來可能會比較困難&#xff0c;因為 Visual Studio 默認只會把你當前設置的啟動項目的啟動調試。好在有Visual Studio 擴展&#xff08;Microsoft Child Proc…

卸載 cube ui_如何還原Windows 8附帶的已卸載現代UI應用程序

卸載 cube uiWindows 8 ships with built-in apps available on the Modern UI screen (formerly the Metro or Start screen), such as Mail, Calendar, Photos, Music, Maps, and Weather. Installing additional Modern UI apps is easy using the Windows Store, and unins…

rest_framework11:jwt簡單例子/自定制基于jwt認證類

jwt簡單例子 一、登陸設置 1.不需要寫login的視圖類&#xff0c;使用jwt內置的。 2.需要前置條件&#xff0c;已有繼承AbstractUser models,并且有數據&#xff0c;用于校驗&#xff0c;返回token。 urls.py from rest_framework_jwt.views import obtain_jwt_tokenurlpat…

Java各種數據類型,自己學習寫的筆記!!!

java編程規范&#xff1a; 1.良好的標識符的命名保留字不能作為標識符命名&#xff1a; class、public、static..., goto,const區分大小寫&#xff1a;helloWorld、HelloWorld 2.良好的注釋習慣 3.良好的縮進&#xff1a;沒遇到一個代碼塊縮進一次&#xff08;一個tab鍵&…

Java Decompiler(Java反編譯工具)

Java Decompiler官網地址&#xff1a;http://jd.benow.ca/ 官網介紹&#xff1a; The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions. JD-Core is a library that reconstructs Java sou…