1、MySQL笔记一、初涉数据库启动关闭MySQL服务:打开cmd输入:net start mysql /所有Windows服务都可以通过这种方式启动和关闭net stop mysql登入和退出MySQL: mysql -u usename -p password -h 服务器名(ip) -P 端口号 exit; quit;q;修改提示符:先登入,再设置提示符prompt 提示符prompt uh d /提示符可以为:D 完整日期 d 当前数据库 h 服务器名称 u 当前用户常用命令: SELECT VERSION(); /显示当前版本 SELECT NOW();/显示当前时间 SELECT US
2、ER();/显示当前用户MySQL语法: 关键字与函数名全部大写; 数据库名称、表名称、字段名称全部小写; SQL语句必须以分号结尾。创建数据库: CREATE DATABASE | SCHEMA IF NOT EXISTS db_name DEFAULT CHARACTER SET = charset_name;例如:CREATE DATEBASE db1;SHOW WARNINGS;/查看警告信息SHOW CREATE DATEBASE db1;/查看编码信息CRETE DATEBASE IF NOT EXSITS db2 CHARACTER SET gbk;修改数据库: ALTER DA
3、TABASE | SCHEMA db_name DEFAULT CHARACTER SET = charset_name;删除数据库: DROP DATABASE | SCHEMA IF EXISTS db_name;二、数据类型和操作数据表数据类型 整型:TINYINT SMALLINT MEDIUMINT INT BIGINT 浮点型:FLOAT(M,D) M数字的总位数,D小数点后面的位数 DOUBLE(M,D) 日期时间型:YEAR TIME DATE DATETIME TIMESTAMP (一般时间都用数字型表示) 字符型:CHAR(M) 定长,如果存入字符数不足M,用空格补足 VA
4、RCHAR(M) 不定长 TINYTEXT TEXT MEDIUMTEXT LONGTEXT ENUM(value1,value2,) 可供选择的,比如性别 SET ENUM(value1,value2,) 任意组合操作数据表1、登录mysql客户端: mysql -uroot -proot -P3306 -h127.0.0.1 用户名 密码 端口 ip地址 2、SHOW DATABASES; /查看有哪些数据库3、USE test;/打开数据库名叫test4、CREATE TABLE IF NOT EXISTS table_name( Column_name data_type, );例如:
5、 CREATE TABLE tb1( Usename VARCHAR(20), Age TINYINT UNSIGNED, Salary float(8,2) UNSIGNED );5、SHOW TABLES;/查看数据表 SHOW TABLES FROM db_name;6、SELECT DATABASE(); /查看当前在哪一个数据库下7、SHOW COLUMNS FROM tb_name /查看数据表结构8、INSERT INTO tb_name (col_name),. VALUES( VAL,.); /插入记录,col_name 和 val 一一对应9、SELECT ecpr, FR
6、OM ta_name 例:SELECT * FROM tb1;空值与非空NULL 字段值可以为空NOT NULL 字段值禁止为空例: CREATE TABLES tb2( username VARCHAR(20) NOT NULL, age TINYINT UNSIGED NULL );自动编号自动编号(AUTO_INCREMENT),且必须与主键组合使用;默认情况下,其实值为1,每次增量为1.主键主键(PRIMARY KEY)不一定和自动编号一起使用主键约束每张数据表只能存在一个主键主键保证记录的唯一性主键自动为NOT NULLCREATE TABLE tb3(id TINYINT UNSI
7、GED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL,);唯一约束唯一约束(UNIQUE KEY)唯一约束可以保证记录的唯一性;唯一约束的字段可以为空值(NULL);每张数据表可以存在多个唯一约束。CREATE TABLE tb(id SMALLINT UNSIGED AUTO_INCREMENT PRIMARY KEY,usename VARCHAR(20) NOT NULL UNIQUE KEY,age TINYINT UNSIGED);默认约束默认约束:DEFAULT当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
8、。CREATE tb(id SMALLINT UNSIGED AUTO_INCREMENT PRIMARY KEY.usename VARCHAR(20) NOT NULL UNIQUE KEY,sex ENUM(1,2,3) DEFAULT 3,);本节总结数据类型: 字符型 整型 浮点型 日期时间型数据表操作: 插入记录 查找记录记录操作: 创建数据表 约束的使用三、约束以及修改数据表3.1外键约束的要求解析3.1.1约束1、 约束保证数据的完整性和一致性;2、 约束分为表级约束和列级约束;表级约束:针对两个或两个以上的约束列级约束:只针对某一个字段的约束 3、 约束类型包括:NOT NU
9、LL(非空约束)PRIMARY KEY(主键约束)UNIQUE KEY(唯一约束)DEFAULT(默认约束)FOREIGN KEY(外键约束)外键约束(FOREIGN KEY):保持数据的一致性,完整性,实现一对一或一对多关系。3.2外键约束要求1、父表与子表必须使用相同的存储引擎,而且禁止使用临时表。 子表:具有外键列的表 父表:子表参照的表2、数据表的存储引擎只能为InnoDB。3、外键列与参照列必须具有相似的数据类型。其中数字的长度或是否有符号必须相同;而字符的长度可以不同。 外键列:加过FOREIGN关键词的那一列 参照列:外键列参照的那一列4、 外键列与参照列必须创建索引,如果外键列
10、不存在索引的话,mysql将自动创建索引。例:CREATE TABLE provinces(id SMALLNT UNSIGED NOT NULL AUTO_INCREMENT PRIMARY KEY,pname VARCHAR(20) NOT NULL,);CREATE TABLE useers(id TINYINT UNSIGED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL,pid SMALLINT UNSIGED,FOREGIN KEY (pid) REFERENCE provinces (id);3.3外键约束的参照
11、操作1、CASCADE:从父表删除或更新且自动删除或更新子表中的匹配行;2、SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL;3、RESTRICT:拒绝对父表的删除和更新操作;4、NO ACTION:标准SQL关键字,在MYSQL中和RESTRICT相同。例如:添加父表:CREATE TABLE provinces(id SMALLINT UNSIGED PRIMART KEY AUTO_INCREMENT,pname VARCHAR(20) NOT NULL);添加子表带有CASCADE操作CREATE TABLE
12、user1(id SMALLINT UNSIGED PRIMARY KEY AUTO_INCREMENT,usename VARCHAR(20) NOT NULL,pid SMALLINT UNSIGED,FOREIGN KEY (pid) REFERENCES provinces (id) ON DELETE CASCADE);在两张表中插记录,先在父表中插记录,INSERT provinces (pname) VALUES(A);INSERT provinces (pname) VALUES(B);INSERT provinces (pname) VALUES(C);SELECT * FR
13、OM provinces;在子表中插入记录INSERT user1 (usename,pid) VALUES(TOM,3);/表示省份对应的名称是C从父表中删除记录DELETE FROM provinces WHERE id = 3;/附表中省份名称为C的那条记录不存在了,则在子表中pid = 3的也全部删除了。3.4表级约束与列级约束表级约束:针对两个或两个以上的约束列级约束:只针对某一个字段的约束列级约束既可以在列定义时声明,也可以列定义后声明;表级约束只能在列定义后声明。3.5修改数据表-添加、删除列添加单列:ALTER TABLE tbl_name ADD COLUMN col_name column_definition FIRST|AFTER col_name添加多列ALTER TABLE tbl_name ADD COLUMN (col_name column_definition,)删除列ALTER TABLE tbl_name DROP COLUMN col_name 删除多列:ALTER TABLE tbl_name DROP COLUMN col_name , DROP COLUMN col_name
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1