MySQL上课笔记

1、官网下载mysql软件
2、QQ群下载navicat for MySQL
3、百度网盘下载微软运行库合集

2.28
API:application programming interface
创建表:(DDL)
CREATE TABLE students(
 id INT(11)  UNSIGNED,
 name VARCHAR(32),
 age INT(4) UNSIGNED,
 sex VARCHAR(16)
);

SIGNED:有符号的数
UNSIGNED:无符号的数
INT:整数
(11):字符显示宽度
VARCHAR(8):可保存可变长度的字符串,比char更加灵活,表示字符数据,比char占用更少的内存和硬盘空间
CHAR(8):不可变的字符串
ABC
 ABC\0
0000ABC\0

插入数据:(DML)
INSERT INTO students(id,name,age,sex) 
VALUES(1,"小明",22,"男");

3.7
登录MySQL
C:\WINDOWS\system32>mysql -h localhost -u root -p

SET PASSWORD FOR root@localhost='密码';
navicat.exe

alter user 'root'@'localhost' identified with mysql_native_password by '你设置的密码';

flush privileges;

3.11
SHOW DATABASES;
创建数据库:
CREATE DATABASE db_shop;
删除数据库:
DROP DATABASE db_shop;
选择数据库:
USE mysql;
查看表:
SHOW TABLES;
3.14
查看存储引擎:
SHOW ENGINES \G
SHOW ENGINES;

MRG_MYISAM:一组MYISAM表的组合,这myisam表结构必须完全相同,说白了,mrg表是几个相同mysiam的聚合器。mrg表中并没有数据,对mrg类型的表可以查询、更新、删除操作,这些操作实际是对内部的myisam表进行操作。
CSV:使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库明相同的目录中生成一个.csv文件
FEDERATED:可以将不同的MySQL服务器联合起来,逻辑上组成一个完整的数据库,非常适合数据库分布式应用
PERFORMANCE_SCHEMA:用于收集数据库服务器性能参数
BLACKHOLE:黑洞引擎,支持事务,而且支持mvce的行级锁,写入这种引擎表中的任何数据都会消失,主要用于做日志记录或者同步归档的中继存储。这个引擎除非有特别的目的,否则不适合使用
ARCHIVE:归档的意思,在归档之后很多的高级功能就不支持了,仅支持最基本的插入和查询两种功能。
查看MySQL默认存储引擎
SHOW VARIABLES LIKE 'default_storage_engine';

USE 21soft4
CREATE TABLE tb_demo(
id INT(11),
name VARCHAR(30),
age TINYINT(4),
score FLOAT(4,1),
sex ENUM('w','m'),
hobby SET('football','basketball','volleyball'),
photo VARBINARY(255),
spend DECIMAL(5,1),
address JSON,
intro TEXT);

3.18
INSERT INTO tb_demo(age)
VALUES(123);
SELECT * FROM tb_demo;
INSERT INTO tb_demo(age)
VALUES(256);
查看系统帮助:
HELP CONTENTS;
HELP DATA TYPES;

FLOAT(4,1)   70.1 70.2   100.1   120.56

90000000000000000000038

INSERT INTO tb_demo(score,spend) 
VALUES(90.1,2000.5);
INSERT INTO tb_demo(score,spend) 
VALUES(90.17,2000.56);
1265:出现警报通常是字段的值跟定义的字段格式不匹配

3.21
CREATE TABLE time_test(
myyear YEAR,
mydate DATE,
mytime TIME,
mydatetime DATETIME,
mytimestamp TIMESTAMP);
插入数据:
1、INSERT INTO time_test(myyear) VALUES('20');
2、INSERT INTO time_test(myyear) VALUES('88');
3、INSERT INTO time_test(mydate)
     VALUES('2022#03#10');
4、INSERT INTO time_test(mytime) 
VALUES('20:20');
5、INSERT INTO time_test(mydatetime) 
VALUES('20220310263055');
6、INSERT INTO time_test(mytimestamp) 
VALUES('20220310163055');
查看表格数据:
SELECT * FROM time_test;

INSERT INTO tb_demo(sex)
VALUES('w'),('m'),(NULL);
SELECT sex,sex+0 FROM tb_demo;
INSERT INTO tb_demo(sex)
VALUES(1),(2);

3.25
INSERT INTO tb_demo(hobby) 
VALUES('football,football'),('volleyball,football,basketball');

SELECT hobby FROM tb_demo;

SHOW CREATE TABLE tb_demo;
SHOW TABLES;

INSERT INTO tb_demo(address)
VALUES('{"province":"江西省","city":"南昌市"}');
字符集:
SHOW CHARACTER SET;
SHOW COLLATION LIKE 'GBK%';
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'character_set_database';

#设置默认字符集和排序规则
character-set-server=GBK
collation-server=gbk_chinese_ci
数据库级字符集:
1、创建数据库的时候,直接设定字符集
CREATE DATABASE chapter2 CHARACTER SET gbk;

3.28
2、修改已存在的数据库的字符集
ALTER DATABASE chapter2 CHARACTER SET latin1;

个人信息表
学号是主键
唯一性:
电话号码、身份证号码
CREATE TABLE USER_ID(
ID INT(11) PARIMARY KEY,
tel INT(11) UNIQUE,
ident  CHAR(18) UNIQUE,
.....
)

CREATE TABLE USER_ID(
ID INT(11) PARIMARY KEY,
tel INT(11),
ident  CHAR(18),
.....
UNIQUE KEY(tel,ident)
)

身份证号、学号、手机号

CREATE TABLE goods(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
type VARCHAR(30) NOT NULL,
name VARCHAR(30) UNIQUE,
price DECIMAL(7,2) UNSIGNED,
num INT(11) DEFAULT 0,
add_time DATETIME
);

4.1
CONSTRAINT 键名
FOREIGN KEY(外键字段)
REFERENCES 父表(主键)

案例:
CREATE TABLE orders(
o_id INT(11) PRIMARY KEY,
add_time DATETIME,
goods_id INT(11),
CONSTRAINT goods_order FOREIGN KEY(goods_id) REFERENCES goods(id)
);

CREATE TABLE category(
id INT(11) PRIMARY KEY,
name VARCHAR(30),
p_id INT(11)
)ENGINE=MyISAM;

comment表
CREATE TABLE comment(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
goods_id INT(11)UNSIGNED NOT NULL ,
user_id INT(11) UNSIGNED NOT NULL,
content TEXT,
add_time DATETIME,
UNIQUE KEY(user_id)
);
reply表
CREATE TABLE reply(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
comment_id INT(11) NOT NULL,
user_id INT(11) UNSIGNED NOT NULL,
r_content TEXT,
add_time DATETIME,
CONSTRAINT com_rep FOREIGN KEY(comment_id) REFERENCES comment(id)
);
删除外键:
ALTER TABLE reply DROP FOREIGN KEY com_rep;
删除表:
DROP TABLE comment;

DESCRIBE goods;

SHOW CREATE TABLE goods;
4.8
修改表 ALTER  (DDL)
1、修改表名
ALTER TABLE 旧表名  RENAME 新表名;
ex:把goods表改为goods_名字
ALTER TABLE goods RENAME goods_sibyl;
2、修改字段数据类型(谨慎使用)
ALTER TABLE 表名 MODIFY 字段 修改后数据类型;
ex:把goods表中的字段add_time 的数据类型改为TIMESTAMP
ALTER TABLE goods_sibyl MODIFY add_time TIMESTAMP;
注意:修改后数据类型如果与修改前的数据类型不相容,那么字段里面的数据会被清空。
举例:改前 add_time DATETIME  时间日期格式 
         2022-4-8 10:33:30
       改后 add_time TIMESTAMP  整数类型
3、修改字段名(修改数据类型谨慎)
ALTER TABLE 表名 CHANGE 老字段名 新字段名 新字段名数据类型;
ex:把tb_demo表里面的sex字段改为gender,数据类型为ENUM,值为Male,Female;
ALTER TABLE tb_demo CHANGE sex gender ENUM('Male','Female');
注意:要把原来的m,w的数据记录删除,才能修改成功
ex:把goods表里面的name改为g_name,数据类型为CHAR(30);
ALTER TABLE goods_sibyl CHANGE name g_name CHAR(30);
4、添加字段
思考:新字段放在哪?
(1)在最后一列  
ALTER TABLE 表名 ADD 新字段名 新字段数据类型;
ex:在goods表中的最后面添加picture字段,数据类型VARCHAR
ALTER TABLE goods_sibyl ADD picture VARCHAR(255);
(2)在最前面添加
ALTER TABLE 表名 ADD 新字段名 新字段数据类型 FIRST;
ex:在goods表中的最前面添加state字段,数据类型TINYINT
ALTER TABLE goods_sibyl ADD state TINYINT(4) FIRST;
(3)在指定的某个字段后面添加
ALTER TABLE 表名 ADD 新字段名 新字段数据类型 AFTER 指定字段;
ex:在goods表的num字段后面添加intro字段,数据类型为TEXT
ALTER TABLE goods_sibyl ADD intro TEXT AFTER num;
5、删除字段  DROP(与delete的区别)
ALTER TALBE 表名 DROP 字段名;
ex:把goods表中的picture字段删除
ALTER TABLE goods_sibyl DROP picture;
6、修改字段顺序
(1)把指定的字段放到最前面
ALTER TABLE 表名 MODIFY 字段名 字段数据类型 FIRST;
ex:把goods表中的num放到表的最前面
ALTER TABLE goods_sibyl MODIFY num INT(11) FIRST;
(2)把指定的字段放到某个字段的后面
ALTER TABLE 表名 MODIFY 字段名 字段数据类型 AFTER 字段名;
ex:把goods表中的state字段放到id后面
ALTER TABLE goods_sibyl MODIFY state TINYINT(4) AFTER id;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值