第一天

create database act_web character set utf8; : 创建数据库并设立编码(命令中是不允许使用“-”的)
create user 'ning' identified by ''; :创建用户并设立密码
grant all on act_web.* to ning; :为用户授权,act_web.*代表数据库中的对象(如表、视图、包、函数、存储过程、触发器、索引等),all代表的增删改查 执行外部SQL文件:
set names utf8; //设置当前控制台编码
source 文件全名;
如:
source /home/soft01/note_resource/cloud_note.sql
source d:/robin/note_resource/cloud_note.sql 1.退出: exit;
2.MySql的常用命令
select now();--当前的日期和时间
select version();--查看当前数据库的版本
select user();--查看当前用户 3.数据库命令
查看小数据库--show databases;
使用数据库--use 库名;
创建数据库--create database 库名;
删除数据库--drop database 库名; 4.数据库中的内容
(1)查看当前库中存在什么表
show tables;
(2)创建一张表
create table 表名(字段的名字1 字段的属性 [not null|null]
[ default value][auto_increment自增一][index索引])
(3)字段的属性
a.整型:
tinyint:有负数时:-128--127
没有负数:0-255
通常使用在年龄,使用在IP
int: 有负数时:-20亿--20亿
表示整数的时候:0--40亿;
bigint:范围确实很大
b.浮点型:
float、double
decimal(m,d):m--指代共有几位数
n--小数点后共有几位 c.字符串
char--定长字符串
varchar--不定长字符集
text--文本类型,大致可以存65500个字
longtext--
enum(值1,值2,...):枚举类型
sex enum("男","女")
d.日期类型
date--"2008-03-08"
datetime--"2008-03-08 12:12:12" create table user32(
userIP int(4) auto_increment primary key,
username varchar(20),
userpwd varchar(20)
age tinyint,
sex enum("男","女"),
sal decimal(5,1) ); 如何解决乱码?
1.指定数据库中所有的字符都为UTF-8
show variables like "%character%"; //查看数据库各个变量是否都为UTF-8
character_set_filesystem=utf8; 第二天 1.修改表的结构(只能发生在学习数据库的初级阶段)
添加字段: alter table 表名 add 字段名 字段类型
修改字段: alter table 表名 change 旧的字段名称 新字段 新的字段属性
删除字段: alter table 表名 drop 字段名称
对表名的修改: alter table 表名 rename 新的表名
删除表: drop table 表名 2.MySql中的数据操作
(1)修改记录:
update 表名 set 字段=值 where 限制条件
(2)增加记录:
insert into 表名 (指定字段) values (字段的值)
(3)删除记录:
delete from 表名 where 限制条件
(4)查询语句:
---自学项目:MySql的分页查询该怎么写?
子查询在真实项目中一般是禁止使用。 3.连接查询
内连接:返回两个表中所有满足条件的记录
查询员工的姓名和所在部门的名称?
select e.ename,d.dname from emp_ning e JOIN dept_ning d on(e.deptno=d.deptno); 外连接:不仅返回两个表中满足条件的记录,还要返回不满足条件的记录
左连接:查询没有部门的职员
select e.ename,d.dname from emp_ning e left outer join dept_ning d on(e.deptno=d.deptno);
右连接:查询没有职员的部门
select e.ename,d.dname from emp_ning e right outer join dept_ning d on(e.deptno=d.deptno); 第三天 MySql的索引
-----“目录” 快速查询记录
存在形式:索引在数据库中是以文件的形式存在。
特性:索引文件与数据库表中的记录是同步更新的。
1.普通索引(MUL):最基本的索引,一张表可以添加多个普通索引(快速查询记录)。
(1)在创建表的时候添加索引:
create table test004(id int(4) auto_increment primary key,
name varchar(20),pwd varchar(20),index(name)); select .......from .........where 在后面必须添加上索引(字段=..) (2)对已经存在的表添加索引:
alter table 表名 add index(字段的名称) alter table test004 add index(pwd); 2.唯一索引(UNI):可以添加在一张表的多个字段上,如果一个字段添加了唯一索引,那么该字段的值不能重复。 (1)在创建表的时候添加索引:
create table test005(id int(4) auto_increment primary key ,phone varchar(20),name varchar(20),unique key(phone)); insert into test005(phone,name) values("13678780832","baobao");
insert into test005(phone,name) values("13678780843","ning"); (2)修改表的时候添加唯一索引:
alter table 表名 add unique key(字段名) 3.主索引(主键):确定唯一记录的字段。 4.全文索引:不支持中文,用不到。 外键:外来的主键
外键约束:保证了数据的完整性,实现多张表的统一操作。
两件方式:
1.级联删除:
on delete cascade
2.级联修改:
on update cascade 创建用户表:主表
create table user03(uid int(4) auto_increment primary key,name varchar(20),age varchar(20))
engine=innodb; 联级发动机 insert into user03(name,age) values("ning",23);
insert into user03(name,age) values("long",24); 创建一个订单表:从表
create table order03(oid int(4) auto_increment primary key,oname varchar(20),money int(4),id int(4),
foreign key(id) references user03(uid) on delete cascade) engine=innodb; insert into order03(oname,money,id) values("i love",5000,1);
insert into order03(oname,money,id) values("you love",5000,2);

mysql基本知识总结的更多相关文章

  1. Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数

    mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...

  2. Mysql存储过程知识,案例--mysql存储过程基本函数

    Mysql存储过程知识,案例: create procedure delete_setting(in p_settingid integer) begin delete from setting wh ...

  3. MySQL高级知识(十六)——小表驱动大表

    前言:本来小表驱动大表的知识应该在前面就讲解的,但是由于之前并没有学习数据批量插入,因此将其放在这里.在查询的优化中永远小表驱动大表. 1.为什么要小表驱动大表呢 类似循环嵌套 for(int i=5 ...

  4. MySQL高级知识(十五)——主从复制

    前言:本章主要讲解MySQL主从复制的操作步骤.由于环境限制,主机使用Windows环境,从机使用用Linux环境.另外MySQL的版本最好一致,笔者采用的MySQL5.7.22版本,具体安装过程请查 ...

  5. MySQL高级知识(十四)——行锁

    前言:前面学习了表锁的相关知识,本篇主要介绍行锁的相关知识.行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高. 0.准备 #1.创建相关测试表tb_ ...

  6. MySQL高级知识(十三)——表锁

    前言:锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算机资源(如CPU.RAM.I/O等)的争用外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...

  7. MySQL高级知识系列目录

    MySQL高级知识(一)——基础 MySQL高级知识(二)——Join查询 MySQL高级知识(三)——索引 MySQL高级知识(四)——Explain MySQL高级知识(五)——索引分析 MySQ ...

  8. MySQL高级知识(十二)——全局查询日志

    前言:全局查询日志用于保存所有的sql执行记录,该功能主要用于测试环境,在生产环境中永远不要开启该功能. 1.如何开启 #1.通过my.cnf配置开启该功能. 注:对my.cnf文件配置后,需重启my ...

  9. MySQL高级知识(十一)——Show Profile

    前言:Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量.默认情况下处于关闭状态,并保存最近15次的运行结果. 1.分析步骤 # ...

  10. MySQL高级知识(十)——批量插入数据脚本

    前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用. 0.准备 #1.创建tb_dept_bigdata(部门表). create table tb_dept_bigdata( ...

随机推荐

  1. Linux环境nginx的配置

    1.创建nginx运行账户www并加入到www组,不允许www用户直接登录系统,查看创建. groupadd www useradd -g www www -s /bin/false tail /et ...

  2. jquery的$post方法不发送空数组的解决办法

    问题:jquery里的ajax在提交post请求时,如果数据里有一个空数组,则这个空数组不会提交上去 技术上的解决办法如下: 源代码: var params = { type : , ids:[] } ...

  3. 04: nginx部署vue

    1.1 基本配置 server { listen 9000; server_name 1.1.1.3; #access_log logs/access_example.log main; root / ...

  4. k8s API sample

    Declarative API k8s: cluster-api Introduction to Kubernetes Cluster-API Project Declarative Manageme ...

  5. python简说(十三)递归

    #递归就是函数自己调用自己count = 0# def abc():# pass# abc()最多循环999次

  6. Codeforces 750E New Year and Old Subsequence - 线段树 - 动态规划

    A string t is called nice if a string "2017" occurs in t as a subsequence but a string &qu ...

  7. bzoj2086: [Poi2010]Blocks DP,单调栈

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2086 思路 这就有点妙了 题目意思就是让你求平均数>=k的最长序列 先求出a[i] ...

  8. 颠倒的价牌|2013年蓝桥杯A组题解析第四题-fishers

    颠倒的价牌 小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店. 其标价都是4位数字(即千元不等). 小李为了标价清晰.方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了(参 ...

  9. 黄金连分数|2013年蓝桥杯B组题解析第四题-fishers

    黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现.有时需要把这个数字求得很精确. 对于某些精密工程,常数的精度很重要.也许你听说过哈勃太空望远镜,它首次 ...

  10. 《OFFER14》14_CuttingRope

      // 面试题14:剪绳子 // 题目:给你一根长度为n绳子,请把绳子剪成m段(m.n都是整数,n>1并且m≥1). // 每段的绳子的长度记为k[0].k[1].…….k[m].k[0]*k ...