新建數據庫、操作數據庫、創建數據庫表等


1、連接數據庫

命令行連接

1. mysql -u root -p123456 --連接數據庫
2. update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; --修改密碼
3.flush privileges;  --刷新權限
-------------------------------------------
--所有的語句都是用;結尾
show databases; --查看所有的數據庫

mysql> use school  --切換數據庫 use 數據庫名
Database changed

show tables    --查看數據庫中所有的表
describe student; --顯示數據庫中所有的表的信息

create database westos; --創建一個數據庫

exit   --退出連接
ctrl+C是強行終止

-- 單行注釋(SQL的本來的注釋)
/*
多行注釋
*/

2、操作數據庫

操作數據庫>操作數據庫中的表>操作數據庫中表的數據

2.1操作數據庫(了解)

1、創建數據庫

CREATE DATABASE [IF NOT EXISTS] student3;

2、刪除數據庫

drop database [IF EXISTS] student3

3、使用數據庫

-- 如果你的表名或者字段名是一個特殊字符,就需要帶``
USE `school`

4、查看數據庫

show databases -- 查看所有的數據庫

學習思路:

  • 對照sqlyog可視化歷史記錄查看sql

  • 固定的語法或關鍵字必須要強行記住!

2.2數據庫的列類型
數值
  • tinyint 十分小的數據 1個字節

  • smallint 較小的數據 2個字節

  • mediumint 中等大小的數據 3個字節

  • int 標准的數據 4個字節 常用的

  • bigint 較大的數據 8個字節

  • float 浮點數 4個字節

  • double 浮點數 8個字節 (精度問題)

  • decimal 字符串形式的浮點數 金融計算的時候,一般使用decimal

字符串
  • char 字符串固定大小的 0~255

  • varchar 可變字符 0~65535 常用的 String

  • tinytext 微型文本 2^8-1

  • text 文本串 2^16-1 保存大文本

時間日期

java.util.Date

  • date YYYY-MM-DD 日期格式

  • time HH:mm:ss 時間格式

  • datetime YYYY-MM-DD HH:mm:ss 最常用的時間格式

  • timestamp 時間戳 1970.1.1到現在的毫秒數! 也較為常用

  • year 年份表示

null
  • 沒有值,未知

  • <!--注意,不要使用NULL進行運算,結果為NULL-->

2.3數據庫的字段屬性(重點)

Unsigned:

  • 無符號的整數

 

zerofill:

  • 0填充的

  • 不足的位數,使用0來填充,int(3), 5---005

 

自增:

  • 通常理解為自增,自動在上一條記錄的基礎上+1(默認)

  • 通常用來設計唯一的主鍵 ~ index,必須是整數類型

  • 可以自定義設計主鍵自增的起始值和步長

 

非空 NULL not null

  • 假設設置為 not null ,如果不給它賦值,就會報錯!

  • NULL,如果不填寫值,默認就是null!

 

默認:

  • 設置默認的值

  • sex,默認值為男,如果不指定該列的值,則會有默認的值

     

2.4、創建數據庫表(代碼方式)(重點)
-- 目標:創建一個school數據庫
-- 創建學生表(列,字段) 使用SQL 創建
-- 學號int 登錄密碼varchar(20) 姓名,性別varchar(2),出生日期(datatime),家庭地址,email

-- 注意點,使用英文(),表的 名稱 和 字段 盡量使用 `` 括起來
-- auto increment 自增
-- 字符串使用 單括號括起來!
-- 所有的語句后面加,(英文的),最后一個不用加
-- PRIMARY KEY(主鍵),一般一個表只有唯一的主鍵!

CREATE TABLE IF NOT EXISTS `student`(
  `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '學號',
    `gradeid` VARCHAR(30) NOT NULL COMMENT'年級號碼',
  `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密碼',
  `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性別',
  `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
  `address` VARCHAR(100) DEFAULT NULL COMMENT'家庭地址',
  `email` VARCHAR(50) DEFAULT NULL COMMENT'郵箱',
  PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式

CREATE TABLE IF NOT EXISTS `表名`(
 `字段名` 列類型 [屬性] [索引] [注釋],
 `字段名` 列類型 [屬性] [索引] [注釋],
  ...
  `字段名` 列類型 [屬性] [索引] [注釋]  --最后一個不加逗號
) [表類型][字符集設置][注釋]

 

常用命令

SHOW CREATE DATABASE school  -- 查看創建數據庫的語句
SHOW CREATE TABLE student   -- 查看student數據表的定義語句
DESC student    -- 顯示表的結構

 

2.5、數據表的類型
-- 關於數據庫引擎
/*
INNODB 默認使用~
MYISAM 早些年使用的
*/
  MYISAM INNODB
事務支持 不支持 支持
數據行鎖定 不支持 支持
外鍵約束 不支持 支持
全文索引 支持 不支持
表空間的大小 較小 較大,約為M的2倍

常規使用操作:

  • MYISAM 節約空間,速度較快

  • INNODB 安全性高,事務的處理,多表多用戶操作

在物理空間存在的位置

所有的數據庫文件都存在data目錄下

本質還是文件的存儲!

2.6 修改刪除表

修改:

-- 修改表:ALTER TABLE 舊表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1

-- 增加表的字段:ALTER TABLE 表名 ADD 字段名 列屬性
ALTER TABLE teacher1 ADD age INT(11)

-- 修改表的字段 (重命名,修改約束!)
-- ALTER TABLE 表名 MODIFY 字段名 列屬性()
ALTER TABLE teacher1 MODIFY age VARCHAR(11)  -- 修改約束
-- ALTER TABLE 表名 CHANGE 舊名字 a新名字 列屬性()
ALTER TABLE teacher1 CHANGE age age1 INT(1)  -- 字段重命名

-- 刪除表的字段:ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1

刪除:

-- 刪除表
DROP TABLE IF EXISTS teacher1

所有的創建和刪除操作盡量加上判斷,以免報錯~

注意點:

  • `` 字段名,使用這個包裹!

  • 注釋 -- /**/

  • sql關鍵字大小寫不敏感,建議大家寫小寫

  • 所有的符號全部用英文!

  •  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM