【mysql相關】
阿新 • • 發佈:2021-01-09
01.07複習mysql**
mysql -uroot -p123456 --連線資料庫 update mysql.user set authentication_string=password('123456')where user='root' and Host = 'localhost'; --修改使用者密碼 flush privileges; --重新整理許可權 -------------- --兩個單橫線是註釋 --注意語句以分號;結尾 show databases; --檢視所有的資料庫 mysql>use school --切換資料庫, 使用:use 資料庫名 Database changed show tables; --檢視資料庫中的表 describe student; --顯示資料庫中student表的資訊 creat database westos; --建立一個數據庫westos exit; --退出連線
操作資料庫:
CREATE DATABASE IF NOT EXISTS www --建立資料庫,加if not exists防止重複
--資料庫中自動變成大寫
DROP DATABASE IF EXISTS www --刪除資料庫www
USE `user`
SELECT `USER` FROM student --查詢student表中USER欄位的資訊
SHOW DATABASE
資料庫列型別:
data YYYY-MM-DD,日期格式 time HH: mm: ss 時間格式 datetime YYYY-MM-DD HH:mm :ss最常用的時間格式 timestamp 時間戳,19701.1到現在的毫秒數 ---
資料庫欄位屬性:
Unsigned:是無符號整數,該列不能為負數
zerofill:不足位數0填充,比如int(3) 輸入5,結果為005
自增:通常是用於設計整數型別的主鍵,自增;
非空 NULL not null ,這個時候不賦值會報錯
NULL,如果不填,就是null
建立資料庫表:
CREATE TABLE IF NOT EXISTS `student`( --表的名稱(student)和欄位儘量用` `括起來,防止因為是關鍵字而造成報錯 --字串一般使用單引號 --AUTO_INCREMENT是自增 `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '學號', `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', --default是設定預設值 `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 PRIMARY KEY(`id`) )ENGINE INNODB DEFAULT CHARSET = utf8
修改與刪除表/表中欄位:
ALTER TABLE teacher RENAME AS teacher1
--修改表名
ALTER TABLE teacher1 ADD age INT(11)
--增加表的欄位age
ALTER TABLE teacher1 MODIFY age VARCHAR(11)
ALTER TABLE teacher1 CHANGE age age1 INT(1)
--change和modify區別:modify用於修改約束,change用來給欄位重新命名
ALTER TABLE teacher1 DROP age1 --刪除表的欄位
DROP TABLE IF EXISTS teacher1 --刪除表
--sql關鍵字大小寫不敏感
外來鍵:
---方式一建立表時新增
KEY `FK_gradeid`--定義鍵
--FK_gradeid是約束名
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`gradeid`) --給外來鍵新增約束,CONSTRAINT為約束,REFENENCES為引用
當存被其他表引用(有外來鍵關係)的時候此表是無法直接刪除表的,需要先把那個表刪除
--方式二建立後加外來鍵
ALTER TABLE `student`
ADD CONSTRAINT `FK_gradeid` FORERIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`);
--就是說:新增 約束名 外來鍵()引用 那個表 表中的(哪個欄位)
其實,資料庫儲存資料即可,行為資料,列為欄位;
後續用程式即可實現使用多張表的資料
DML(增刪改):資料操作語言
insert update delete
select(不是
insert,update
INSERT INTO `表名`(`欄位1`,`欄位2`)values('值1'),('值2')(...)
UPDATE `表名` SET `name` = 'xxx' WHERE id = 1 --一定要加附加條件
DELETE FROM `表名` WHERE id = 1;
TRUNCATE `student` --清空student整個表
select (DQL,資料查詢語言)
SELECT * FROM student --查詢全部學生
SELECT * FROM score
SELECT `列名1`, `列名2` FROM student
SELECT `StudentNo` AS 學號, `StudentName` AS 學生姓名 FROM student--這樣用別名就很直觀
--拼接字串CONCAT(a,b)
SELECT CONCAT('姓名:',StudentName) AS 新名字 FROM student