Mysql命令整理

/*【数据管理-增删改】*/
USE test;
DROP TABLE demo;
-- 特别注意涉及主外键关系时,先插入主表数据
-- 主表:提供引用数据列的表(地基)
-- 子表:数据有引用于其他表的表
-- 主键:用于唯一标识表中某行数据的某列称为主键列
-- 外键:这一列数据来源于另外某列(可以是自身表或其他表的唯一非空的列)
-- 外键列值可以重复,主键列值不允许重复
SHOW TABLES;
SELECT * FROM student;
SELECT * FROM course;
SELECT * FROM score;

/*错误代码: 1452
Cannot add or update a child row:
a foreign key constraint fails (`test`.`score`,
CONSTRAINT `FK_SC_STUID` FOREIGN KEY (`stuid`) REFERENCES `student` (`sid`))*/\
INSERT INTO student VALUES(1,‘未备注‘);
/*错误代码: 1452
Cannot add or update a child row:
a foreign key constraint fails (`test`.`score`,
CONSTRAINT `FK_SC_CTUID` FOREIGN KEY (`cid`) REFERENCES `course` (`cid`))*/
INSERT INTO course(cid,cname) VALUES(1,‘JavaSE‘);
INSERT INTO score VALUES(1,1,100);

-- 批量插入多条数据
INSERT INTO student VALUES(2,‘光辉‘),(3,‘Sprin‘),
(4,‘墨白‘),(5,‘finsk‘);
SELECT * FROM student;

-- 复制表结构(加一个永远不成立的条件即可)
CREATE TABLE student_copy AS SELECT * FROM student WHERE 1<>1;
SELECT * FROM student_copy;
INSERT INTO student_copy SELECT * FROM student;
SELECT * FROM student_copy;
/*错误代码: 1146
Table ‘test.student_bk‘ doesn‘t exist*/
INSERT INTO student_bk SELECT * FROM student;

DROP TABLE IF EXISTS demo;/*删除表*/
CREATE TABLE demo(
id INT PRIMARY KEY AUTO_INCREMENT, -- 自动增长,默认起始值为1
dname VARCHAR(5) NOT NULL UNIQUE,
sex CHAR(1) DEFAULT ‘M‘
);

SHOW TABLES;
DESC demo;
SHOW CREATE TABLE demo;
-- 安装数据库的时候忘记设置字符编码
SET NAMES utf8;

-- 插入数据,注意char和varchar存储字符的长度
INSERT INTO demo VALUES(1,‘Springer‘,‘M‘);
/*错误代码: 1406 dname字段插入的数值长度过大
Data too long for column ‘dname‘ at row 1*/
INSERT INTO demo VALUES(1,‘Sprin‘,‘M‘);
SELECT * FROM demo;
INSERT INTO demo VALUES(1,‘Sprin‘,‘神仙‘);
INSERT INTO demo VALUES(1,‘Sprin‘,‘神‘);
/*错误代码: 1062 主键重复
Duplicate entry ‘1‘ for key ‘PRIMARY‘*/
INSERT INTO demo VALUES(2,‘Sprin‘,‘神‘);
/*错误代码: 1062 unique唯一约束起作用,dname列不允许重复
Duplicate entry ‘Sprin‘ for key ‘dname‘*/
SELECT * FROM demo;
/*错误代码: 1048 dname列不允许为空
Column ‘dname‘ cannot be null*/
INSERT INTO demo VALUES(3,NULL,‘神‘);

INSERT INTO demo(id,dname) VALUES(4,‘笑红尘‘);
SELECT * FROM demo;

/*错误代码: 1136 列的数量不匹配值的数量
Column count doesn‘t match value count at row 1*/
INSERT INTO demo VALUES(NULL,‘上天‘,‘F‘);
INSERT INTO demo VALUES(NULL,‘光辉‘,‘M‘);
SELECT * FROM demo;

-- 主键从17001开始 修改自动增长的起始值(注意自动增长只对数值列起作用)
ALTER TABLE demo AUTO_INCREMENT=17001;
INSERT INTO demo VALUES(NULL,‘大胡子先生‘,‘M‘);
SELECT * FROM demo;

DROP TABLE IF EXISTS demo;
CREATE TABLE demo(
id INT PRIMARY KEY AUTO_INCREMENT, -- 自动增长,默认起始值为1
dname VARCHAR(5) NOT NULL UNIQUE,
sex CHAR(1) DEFAULT ‘M‘ CHECK(sex IN(‘M‘,‘F‘))
);
-- 注意:check检查约束在现在的MySQL版本中不起作用,只在SQLServer中起作用
-- 如果想在MySQL中实现检查约束,使用enum,或者使用触发器
INSERT INTO demo VALUES(NULL,‘finsk‘,‘猿‘);
SELECT * FROM demo;

DROP TABLE IF EXISTS demo;
CREATE TABLE demo(
id INT PRIMARY KEY AUTO_INCREMENT, -- 自动增长,默认起始值为1
dname VARCHAR(5) NOT NULL UNIQUE,
sex ENUM(‘M‘,‘F‘)
);
/*错误代码: 1265
Data truncated for column ‘sex‘ at row 1*/
INSERT INTO demo VALUES(NULL,‘finsk‘,‘Y‘);
INSERT INTO demo VALUES(NULL,‘finsk‘,‘M‘);
SELECT * FROM demo;

-- 补充:关于绝对引用和相对引用 . 看做中文 的
USE mysql; -- 切换数据库到mysql
/*错误代码: 1146 mysql数据库中的demo表不存在
Table ‘mysql.demo‘ doesn‘t exist*/
SELECT * FROM demo; -- 相对引用
SELECT * FROM test.demo;

在企业开发中,经常需要修改原有表的字段的数据类型
或者,增加删除表中某列,或者增加删除某种约束
*/
/*【1】列的添加和删除、列的数据类型的修改,列名修改
alter table 表名 add 列名 列的数据类型; -- 在最后一列末尾追加
alter table 表名 add 列名 列的数据类型 after 列名2; -- 在列名2后增加一列
alter table 表名 add 列名 列的数据类型 first; -- 在第一列前面插入一列
alter table 表名 drop 列名;
alter table 表名 drop 列名1,列名2,……;
alter table 表名 modify 列名 新的数据类型; -- 修改列名
alter table 表名 change 列名 新列名 新的数据类型; -- 修改列名及数据类型
*/
DROP TABLE IF EXISTS student;
CREATE TABLE student(
sid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(3) NOT NULL UNIQUE
);
-- 【1】增加列
ALTER TABLE student ADD sex CHAR(1) NOT NULL;
ALTER TABLE student ADD age INT AFTER sname;
ALTER TABLE student ADD classNo VARCHAR(8) FIRST;
SELECT * FROM student;
-- 【2】修改列名或列的数据类型
ALTER TABLE student MODIFY sname CHAR(30);
DESC student;
ALTER TABLE student CHANGE sname stuName VARCHAR(30);
DESC student;
-- 【3】删除列
ALTER TABLE student DROP sex;
DESC student;
ALTER TABLE student DROP classNo,DROP age;
DESC student;

/*【2】约束的添加和删除
alter table 表名 add constraint 约束名 约束语法;
【主键约束】
alter table score add constraint primary key PK_SC(scid);
【外键约束】
alter table scoce add constraint FK_SC_ST foreign key(stid) references student(sid);
【默认值约束】
alter table student alter classNo set default ‘20171101‘;
*/
CREATE TABLE course( -- 课程表
cid INT,
cname VARCHAR(30)
);
CREATE TABLE score(
stuid INT,
cid INT,
result NUMERIC(4,1)
);
SHOW TABLES;
-- 查看表之间的主外键关系,菜单【开始】-【新架构设计器】,将相应的表拖进即可
-- 【1】添加和删除主键约束
-- -- 不需要再指定主键列的列名,因为对于同一张表,主键列只有一组
ALTER TABLE course ADD CONSTRAINT PRIMARY KEY(cid);
ALTER TABLE course DROP PRIMARY KEY; -- 删除主键
-- 【2】添加和删除外键约束
ALTER TABLE score ADD CONSTRAINT FK_SC_STUID FOREIGN KEY(stuid) REFERENCES student(sid);
ALTER TABLE score DROP FOREIGN KEY FK_SC_STUID;
ALTER TABLE score ADD CONSTRAINT FK_SC_CTUID FOREIGN KEY(cid) REFERENCES course(cid);
ALTER TABLE score DROP FOREIGN KEY FK_SC_CTUID;
-- 【3】默认值修改
ALTER TABLE score ALTER result SET DEFAULT 0;

SHOW CREATE TABLE course;
DESC course;
DESC score; -- MUL multiple 多对1

原文地址:https://www.cnblogs.com/finsky/p/8261247.html

时间: 2024-08-26 21:14:36

Mysql命令整理的相关文章

mysql 命令整理

登录命令 mysql -uroot -p21313 新建用户 insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234")); 刷新权限 flush privileges; 创建数据库 create database 数据库名; 显示数据库 show database; 切换数据库 use 数据库名: 数据库授权 grant all

MySQL 命令整理1

1. 数据库登陆操作: 数据库登陆 mysql -hlocalhost -p3306 -uroot -p 本地登陆: mysql -u root -p 2. 数据库管理操作: 查看所有数据库: show databases; 新建数据库,并设定数据库编码为utf8: create database db character set utf8; 修改数据库编码为utf8: alter database db charset=utf8; 显示创建数据库信息: show create database

常用MySQL命令整理

备份导出数据库 #1.备份数据库到sql文件 mysqldump --add-drop-database -h localhost -uusername ppassword dbname > dbname.sql #2.顺便压缩一下,方便下载 zip dbname.sql.zip dbname.sql #3.删除备份sql文件(可选) rm -f dbname.sql

mysql常用命令整理

整理下常用命令,方便记忆,没事可拿出来瞅瞅,: 1.连接mysql数据库: #mysql -h 1.1.1.1 -uroot -p zabbix 2.mysql改密码 mysqladmin命令格式: mysqladmin -u 用户名 -p 旧密码 password 新密码(password函数) 2)忘记root密码 # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 重新启动mysqld 3.mysql建新用户并授权 grant selec

4-20 mysql 整理 (建表语句和mysql命令)

create  table  [if not exists] 表名(    字段1 数据类型 [约束或索引列表],    字段2 数据类型 [约束或索引列表]) [表选项列表];#虚拟表的概念:将查询出来的结果(一张表) 当做表来操作#讲虚拟表保存起来(放到变量里面)这就是视图#创建用于登录的表  drop table if exists login;  如果存在就删掉新建  create table login(    userid varchar(20) not null primary k

MySQL命令大全(转)

常见的MySQL命令大全一.连接MySQL        格式: mysql -h主机地址 -u用户名 -p用户密码        1.例1:连接到本机上的MYSQL.        首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>.        2.例2:连接到远程主机上的MYSQL.假设远程主机的I

常用mysql命令大全

常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>. 2.例2:连接到远程主机上的MYSQL.假设远程主机的IP为:110.110.110.110,用户名为root

Linux的经典shell命令整理

Linux的经典shell命令整理 1.删除0字节文件find -type f -size 0 -exec rm -rf {} \; 2.查看进程按内存从大到小排列ps -e -o “%C : %p : %z : %a”|sort -k5 -nr 3.按cpu利用率从大到小排列ps -e -o “%C : %p : %z : %a”|sort -nr 4.打印说cache里的URLgrep -r -a jpg /data/cache/* | strings | grep “http:” | aw

常见的MySQL命令大全

一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>. 2.例2:连接到远程主机上的MYSQL.假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123.则