第一天

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. 案例:配置apache和nginx的SSL加密传输协议

    一.SSI解释 SSI是一种类似于ASP的基于服务器的网页制作技术.将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本.图形或应用程序信息包含到网页中.例如,可以使用 SSI 包含 ...

  2. 八大排序算法之七—堆排序(Heap Sort)

    堆排序是一种树形选择排序,是对直接选择排序的有效改进. 基本思想: 堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足 时称之为堆.由堆的定义可以看出,堆顶元素(即第一个元素) ...

  3. spring总结之一(spring开发步骤、bean对象的管理、bean生命周期)

    ###spring 1.概念:开源,轻量级,简化开发的企业级框架. 开源:免费,发展快. 轻量级:占内存小. 简化开发:通用的功能封装,提高程序员的开发效率.--------------------- ...

  4. Caused by: java.lang.ClassNotFoundException: Illegal access: this web application instance has been stopped already. Could not load [org.jboss.netty.util.internal.ByteBufferUtil]. The following stack

    Caused by: java.lang.ClassNotFoundException: Illegal access: this web application instance has been ...

  5. kivy 使用webview加载网页

    from kivy.app import App from kivy.uix.widget import Widget from kivy.clock import Clock from jnius ...

  6. Prometheus监控学习笔记之在 HTTP API 中使用 PromQL

    0x00 概述 Prometheus 当前稳定的 HTTP API 可以通过 /api/v1 访问. 0x01 API 响应格式 Prometheus API 使用了 JSON 格式的响应内容. 当 ...

  7. php 微信支付V3 APP支付

    前言:微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版.V3版的微信支付没有paySignKey参数. php 微信支付类 <?php class We ...

  8. MySQL 常用使用语句

    1)批量删除表 Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_n ...

  9. kaptcha验证码实现,配合spring boot使用

    一.kaptcha介绍 Kaptcha是谷歌放在github上的一个验证码jar包,我们可以简单配置属性实现验证码的验证功能. kaptcha参数设置如下所示: Constant 描述 默认值 kap ...

  10. 流程控制if,while,for

    if语句 什么是if语句 判断一个条件如果成立则做...不成立则做....为何要有if语句 让计算机能够像人一样具有判断的能力 如何用if语句 语法1: if 条件1: code1 code2 cod ...