day12 mysql 的增删改查

 

mysql login
mysql -uroot -p

密码  zst


使用数据库
use mysql


添加用户:
insert into user
(host,user,password, #定义 新的用户名 密码
select_priv,insert_priv,update_priv) #定义是否授予权限 显示、插入、更改的权限
values('localhost','guest',
password('guest'),'Y','Y','Y'); #给前面的定义进行赋值,权限为Y or N 。

flush privileges; #刷新权限。


外围操作:
show databases; 列出 MySQL 数据库管理系统的数据库列表
show tables; 显示指定数据库的所有表
show columns from database_name;显示指定数据库的所有属性。
show index from table 显示指定表的所有索引信息。

增删数据库:
create database name charset "utf8"; 创建一个名字为name的数据库,且字符类型char 设置支持utf8
drop database name; 删除名字为name的数据库。


创建一张名字为student表
create table student(
stu_id INT NOT NULL AUTO_INCREMENT, 定义属性stu_id 为整型,且不能为孔,且会自增。
name CHAR(32) NOT NULL,
age INT NOT NULL,
register_date DATE,
PRIMARY KEY ( stu_id ) 定义一个属性 为主键
);

改表名
ALTER TABLE testalter_tbl RENAME TO alter_tbl 用 rename to

 


在表中插入一条数据
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN ); 像字典一样 一一对应的插入。


查看显示数据:
select name from table_name where id=1;
显示指定表的指定某些数据,where类似与过滤器。

模糊匹配查看显示数据:
select *from student where name binary like "%Li"; 通过where 属性 like 类似于正则表达式来筛选匹配。

模糊匹配查看显示数据再排序:
增加 order by 属性 desc ; desc 升序,asc 降序。

增删改表内某个属性:
alter table student drop register_date;
drop 为删, add 为增加 如 alter table student add phone int(11) not null;
ALTER TABLE student MODIFY c CHAR(10) 在指定的table里改 属性c的字段类型。也可以改modify为change如下
ALTER TABLE student MODIFY c c CHAR(10) 写出原属性 写出 改后的属性 并且指定字段类型。
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100 改的当时可以设定一个默认值。

改表名
ALTER TABLE testalter_tbl RENAME TO alter_tbl 用 rename to



更改数据update:
update table_name set name="",age="" where id= ;更新指定表 指定某个属性的值为多少,最后通过过滤器哪几条。

删除数据 delete:
DELETE FROM table_name [WHERE 同上。

分组统计显示:SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;按name分组,且按name计数。

分组统计显示升级版-最后一条增加累计统计-with rollup
SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
再升级 最后一条增加属性名字
SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;

两张表通过主键关联 这里面的单引号要全部去掉
mysql> create table class(
id int not null primary key,
name char(16));
Query OK, 0 rows affected (0.02 sec) 先创建一个主表


CREATE TABLE `student2` ( 创建一个附表
`id` int(11) NOT NULL,
`name` char(16) NOT NULL,
`class_id` int(11) NOT NULL,
PRIMARY KEY (`id`), 设置id为主键
KEY `fk_class_key` (`class_id`),
CONSTRAINT `fk_class_key` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`)


KEY `fk_class_key` (`class_id`) 写第二张表用来连接的那个属性
CONSTRAINT `fk_class_key 约束前一行定义
FOREIGN KEY 为外部键 指第二张表的键用于和第一张表建立连接
REFERENCES `class` (`id`) 为第一张表的 id 用于建立连接 这里的class 为第一张表的名字
其中 fk_class_key 这个式固定的 跟表的名字没有关系
连起来 就是 指定一个外键 约束它为外部键 最后参考另一张表的主键

posted @ 2021-05-21 15:42  初出茅庐的菜鸡  阅读(54)  评论(0)    收藏  举报