数据库的分类
--1.关系型数据库
-----用“表”保存数据,相关数据存入一张表中
 
--2.非关系型数据库
-----键值数据库
-----对象数据库
###主流关系型数据库
-Oracle  甲骨文  拉里.艾力森   收费 核 闭源  卖产品
-DB2   IBM,应用于大型系统,主要环境是:UNIX/linux,是Oracle的主要竞争对手
-SQL Server 微软    只能在windows下运行 .net(C#)
-Mysql  免费 开源  卖服务
###SQL基本操作  
SQL语言是操作数据库的语言 ,每一种数据库都有自己的独特方言
--操作数据库
1.显示所有的数据
--show databases;
2.选定要操作的数据库
--use database_name(库名);
3.创建新的数据库
--create database 库名;
4.查看创建数据库的语句
--show create database 库名;
5.设置默认解码的创建库语句
--create database demo1 default character set utf8;
6.删除数据库
--drop database demo1;
7.显示所有表,查询表结构
--show tables;
8.查询表结构
--desc 表名;
9.创建表
--create table 表名(
 列名 数据类型(长度) 约束,
 列名 数据类型(长度) 约束,
 .........
 列名 数据类型(长度) 约束(最后一列的逗号去掉)
);
例如:
create table stu(id int not null,name varchar(10),sex varchar(10));
或者:
create table stu(name varchar(10),age int)engine=innodb charset=gbk;
not null:限制 不能为空

#mysql的引擎有两种
ENGINE=InnoDB  支持数据库高级功能    如:事务(不能被打断,要么成功,要么回滚),外键
ENGINE=myisam  只包含数据存储的基本功能  效率非常高
#修改表名
---rename table 旧表名 to 新表名
---如:rename table user to tb_user;
##修改表属性(引擎,字符编码)
-----alter table 表名
          engine=myisam charset=utf8;
例如: alter table tb_user engine=myisam charset=utf8; 
#添加字段
----alter table 表名 add 新字段  新字段的数据类型  新字段的约束  first;
例如:alter table tb_user add id int first;
或者alter table tb_user add (gender char(5),tel char(11));
#修改字段名称
----alter table tb_user change 旧字段名 新字段名 新字段数据类型;
例如:alter table tb_user change gender sex varchar(10); 
#改数据类型
---删除某一个字段 ,添加一个新的
---使用命令关键字直接修改
-----alter table 表名 modify 字段名 字段新类型
例如:alter table tb_user modify tel varchar(11);       
#修改列的顺序
--alter table 表名 modify 目标列名 目标列数据类型 after 某一列
--例如:alter table tb_user modify tel varchar(11) after age; 
例如:alter table stu modify id varchar(11) first;//直接设置到第一行
#删除列(字段)
--alter table 表名 drop 列名
例如:alter table tb_user drop sex;
#删除表
--drop table 表名
例如:drop table tb_user;

create table emp(  //员工表
 empno int (4) NOT NULL  AUTO_INCREMENT COMMENT '工号',
 ename varchar(10), //姓名
 job varchar(10),  //工种
 mgr int(4), //上级领导工号
 hiredate date, //入职时间
 sal double(7,2), //工资
 comm double(7,2), //奖金
 deptno int(4) ,//所属部门编号
PRIMARY KEY (empno)
)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
create table dept( //部门表
 deptno int(4), //部门编号
 dname varchar(14), //部门名称
 loc varchar(13) //部门办公所在地
);
select EMPNO as 工号,ENAME as 姓名,JOB as 工作,MGR as 上级领导编号,  HIREdate as 职时间,SAL as工资,COMM as 金,DEPTNO as 部门编号  from EMP;

###DML语言  对表中数据做操作的语句 增查删改
##INSERT语句
--属于插入语句
----insert into 表名(列名,列名,....) values (值1,值2,...);
例如:insert into emp(empno,ename,job,sal) values (1001,'lily','programmer',5500);
例如:insert into emp(empno,ename,hiredate) values (1002,'simth','18-01-24');
例如:insert into stu values('zhangsan',12),('lisi',24);
例如:insert into stu (id,name,age) values('1003','c',23),('1004','d',34);
##UPDATE语句
----属于更新,修改
--update 表名 set 字段名=值 where 列名=值;
例如:update emp set ename='lucy' where empno=1001;
例如:update book1 set bname='天线宝宝',author='不详',type='少儿' where bno=1005;
例如:update person set name='阿红' where id=4 and age=20;
##DELETE语句
---删除语句
----delete from 表名 where 条件
--------delete from emp where job is null;
## select 语句
--没有条件的简单查询  
1.select * from 表名; 查询表中所有数据  会多一步查字段名
2.select 字段名 from 表名;查询该字段名列的数据
 select name as '姓名'  from 表名;  查询name列的数据 as '姓名'  加别名
  select name as '姓名',age from person;
select name as '姓名' from person;
+-----------+
| 姓名      |
+-----------+
| 薰儿      |
| 任盈盈    |
select name as 姓名,age as 年龄 from person;
+-----------+--------+
| 姓名      | 年龄   |
+-----------+--------+
| 薰儿      |     20 |
| 任盈盈    |     20 |
select ENAME 员工姓名,JOB 工作 from EMP;//省去as
select e.ENAME 员工姓名 from EMP e;//表的别名
select EMPNO,ENAME,JOB,COMM from EMP where COMM is not null and COMM>0;
##去重  distinct
select distinct e.MGR 领导 from EMP e;
##where
-where 子句用于规定选择的标准,如果需要有条件的从表中选取数据
可将where 字句添加在select的后面
-where字句是决定一条查询语句最后显示多少条目数的关键
-在where会有一些运算符,大致与java相同
1.and or   where MGR=7777 and COMM>1000 or DEPTNO=3;
在where子句中把两个或多个条件结合起来,结合的结果与java中的&&和||一致,在不明优先级的情况下,使用()
2.like  模糊查询  操作符
-like用于在where语句中搜索列中的指定模式
-sql中  模式就是--->通配符
----% 代替任意个数的字符   a% 以a开头  %a 以a结尾   a%a以a开头和结尾     
--_代替一个字符   a_以a开头两个字符    _a   A_A   _A_
例如:select * from t_item where title like '%记事本%'\G;
###例如select ENAME from EMP where ENAME not like 'K%';
select * from t_item where title not like '%得力%'\G;
3.<   >  <=   >=   =   !=      <>也是不等于
4.is null  is not null   in(在...中)in(112,114)两个中的一个   not
select * from t_item where category_id in(238,917);
相当于:select * from t_item where category_id=238 or category_id=917\G
5.between xx and xx   在...之间
select * from t_item where title like '%得力%' and price between 50 and 200\G;
select * from t_item where price not between 50 and 200\G;
select title,price from t_item where (title like "%联想%"   or title like "%戴尔%") and title like "%电脑%";
###DDL语句--对表本身操作的语句 以上除了DML都是DDL
##TRUNCATE  删除数据
先把整张表删除,然后重新创建一个表结构一模一样的空表
--truncate table 表名
----例如truncate table emp;
#DDL不支持事务,运行后马上执行,不能回滚,DML支持事务
 
 
##练习
 create table book(
  bid int(4) primary key comment '书id',
  bname varchar(50) comment '书名',
  pub varchar(50) comment '出版署',
  author varchar(50) comment '作者'  //最后一行不加,号
 )engine=myisam charset=utf8;
 所有字段使用``,所有字符串使用''或""
 
#SQL分类
###数据定义语言 DDL  负责数据结构定义、与创建数据库对象的语言   常用:create alter drop
DDL不支持事务,所以执行之后不能回滚。、
###数据操控语言 DML  增 删 改
对数据库中更改数据操作的语句
常用:select insert update delete -->CRUD 增删改查。  
通常把select相关操作拿出来,称之为DQL
DML支持事务,在非自动提交模式时,可以利用rollback回滚操作
####----数据查询语言 DQL  select 查
-筛选 分组 连表查询  ****面试考点
#事务控制语言  TCL
负责实现数据库中事务支持的语言
常用:commit rollback;
###数据库控制语言 DCL
 管理数据库的授权,角色控制等,grant(授权),revoke(取消授权)
 
 
 create table customer(
     cid int(4) primary key comment '顾客编号',
    cname varchar(50) comment '顾客姓名',
    sex char(5) comment '顾客性别',
    address varchar(50) comment '地址',
    phone varchar(11) comment '手机',
    email varchar(51) comment '邮箱'
    );
    show create table customer;
 
 
#数据库数据类型
##整数类型 int    bigint
--tinyint  1字节
--smallint  2字节
--int    4字节
--bigint  8字节
int(6)  里面的数字影响的是查询时的显示长度,不影响数据的保存长度
例子:create table t1(id1 int,id2 int(5)); 
  括号里不写数字  默认11
  insert into t1 values(111111,111111);
  alter table t1 modify id1 int zerofill;
  alter table t1 modify id2 int(5) zerofill;
##浮点数类型 double  decimal
--float 4字节
--double 8字节 (8,2)
可能会产生精度的缺失
--decimal  不缺失精度 ,但是使用的时候需要指定总长度和小数位数
##字符串类型 char varchar  text
--char(固定长度)  定长字符串  最多255个字节   定多少长度就占多少长度,多了放不进去,少了空格补,不认识内容尾部的空格
--varchar(最大长度) 变长字符串 最大65535  使用的时候一般不超过255;   只要不超过定的长度,都可以放进去,以内容真实长度为准,认识尾部空格
--text  最大65535个字节
--blob  大数据对象,以二进制(字节)方式存储
##日期类型  date datetime  timestamp time year..
--date 年月日
--time 时分秒
--datetime  年月日时分秒 最大值到9999年,而且需要手动输入,
如果没有手动输入就显示null。
--timestamp 年月日时分秒 当没有数据插入时,自动填入当前时间
最大值2038
--bigint 1710 -1-1 0:0:0  格林威治时间
create table t (
 d1 date,
 d2 time,
 d3 datetime,
 d4 timestamp
 );
 insert into t (d1,d2) values ('1910-01-10','12:32:12');
 
 insert into t values (1,'2018-12-21','15:34:23','1995-02-10 12:08:12','2030-10-10 15:23:34');
 
 insert into t values(2,'3018-01-25','15:12:34','9234-12-31 12:12:12','2048-12-31 12:12:12');
##其他数据类型  set....
 
 
 
 练习:
 create table person(
  id int(4) primary key,
  bane varchar(50),
  age int(2)
  );
  insert into person values(1,"没嘲讽",36);
  insert into person values(2,"小龙女",25);
  insert into person values(3,"任盈盈",25);
  insert into person values(4,"周只若",23);
  insert into person values(5,"赵敏",25);
  insert into person values(6,"小昭",26);
  insert into person values(7,"珠儿",27);
  insert into person values(9,"黄蓉",36);
  insert into person values(10,"岳临山",24);
  
  
  select ENAME as 姓名,MGR as 领导,JOB as 工作,SAL as 工资 from EMP;
  
  select EMPNO as 编号,ENAME as 姓名,DEPTNO as 部门编号,SAL as 工资 from EMP;
  
  
## 如果忘了mysql的用户名 密码怎么办?
一、卸载重装
二、不重装:
1.停止mysql服务(任务管理器?)   
2.打开中端输入:
mysqld --skip-grant-tables;相当于通过控制台开启了一个mysql服务(窗口不要关)//越过服务修改表
3再开启一个新的cmd:mysql -u root -p;可以不使用密码进入数据库
4.show databases;===mysql存root和密码
5.use mysql;
6.update user set password=password('新密码') where user='root';
7.关闭mysqld这个服务进程
8.重启mysql服务

mysql基本操作1的更多相关文章

  1. mysql 基本操作语句

    mysql 基本操作笔记: 创建表demo:CREATE TABLE `role` ( `role_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMME ...

  2. css属性编写顺序+mysql基本操作+html细节(个人笔记)

    css属性编写顺序: 影响文档流的属性(比如:display, position, float, clear, visibility, table-layout等) 自身盒模型的属性(比如:width ...

  3. 【mysql】mysql基本操作

    mysql基本操作 1.mysql表复制 mysql 表结构的复制 create table t2 like t2 mysql 表数据的复制 insert into t2 select * from ...

  4. 数据库相关 Mysql基本操作

    数据库相关 设计三范式: 第一范式: 主要强调原子性 即表的每一列(字段)包含的内容,不能再拆分.如果,某张表的列,还可以细分,则违背了数据库设计的第一范式. 第二范式: 主要强调主键,即:数据库中的 ...

  5. Mysql基本操作、C++Mysql简单应用、PythonMysql简单应用

    MySql基本操作 -- 当指定名称的数据库不存在时创建它并且指定使用的字符集和排序方式 CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET UTF ...

  6. MySQL必知必会笔记-Mysql基本操作

    Mysql基本操作 mysql的基本操作包括增.删.改.查,本书中前三章简单的介绍MySQL为何物,查是mysql中非常重要的功能,4-6章展示了mysql的查(查询--select)的简单实现,my ...

  7. day02 MySQL基本操作

    day02 MySQL基本操作 昨日内容回顾 数据库演变史 1.纯文件阶段 2.目录规范 3.单机游戏 4.联网游戏 # 数据库就是一款帮助我们管理数据的程序 软件开发架构及数据库本质 cs架构与bs ...

  8. MYSQL基本操作(上)

    很久之前,就想做个Mysql的小结,毕竟数据库知识是软件研发的基本技能,这里话不多说,开始总结一波. 数据库基本概念 数据库为高效的存储和处理数据的介质(主要分为磁盘和内存两种),一般关系型数据库存储 ...

  9. MySQL(二) MySQL基本操作

    数据库的基本操作 启动关闭 MySQL 服务 MySQL 安装好后,默认是当 Windows 启动.停止时,MySQL 也自动.停止.不过,用户可以使用 Windows 下的服务管理器或从命令行使用 ...

  10. CodeIgniter框架——创建一个简单的Web站点(include MySQL基本操作)

    目标 使用 CodeIgniter 创建一个简单的 Web 站点.该站点将有一个主页,显示一些宣传文本和一个表单,该表单将发布到数据库表中. 按照 CodeIgniter 的术语,可将这些需求转换为以 ...

随机推荐

  1. SpringCloud Nacos + Ribbon 调用服务的 2 种方法!

    在 Nacos 中,服务调用主要是通过 RestTemplate + Ribbon 实现的,RestTemplate 是 Spring 提供的 Restful 请求实现类,而 Ribbon 是客户端负 ...

  2. css样式之浮动

    什么是浮动? 添加了浮动的的元素会脱离正常的文档流. 浮动的特点: 1.可以让块级元素排在同一排 2.可以让行属性标签支持所有的css样式 3.遇到相邻的浮动元素或者父级元素会停下来 4.浮动会影响其 ...

  3. Python:pyglet学习(1):想弄点3D,还发现了pyglet

    某一天,我突然喜欢上了3D,在一些scratch教程中见过一些3D引擎,找了一个简单的,结果z轴太大了,于是网上一搜,就发现了pyglet 还是先讲如何启动一个窗口 先看看官网: Creating a ...

  4. 微信小程序yansongda 支付宝测试

    小程序支付接入文档 1:php 框架composer 安装yansongda插件 composer require yansongda/pay:^2.10 -vvv 2:支付宝沙箱支付获取自己Appi ...

  5. 微信小程序下滑时能实现加载更多数据

    wxml代码: <view class="scroll"> <!-- 绑订页面上拉触底事件的处理函数onReachBottom事件 --> <scro ...

  6. pandas常用操作详解——info()与descirbe()

    概述 df.info():主要介绍数据集各列的数据类型,是否为空值,内存占用情况: df.describe(): 主要介绍数据集各列的数据统计情况(最大值.最小值.标准偏差.分位数等等). df.in ...

  7. UOJ188题解

    我们先枚举一个最大质因子,然后设 \(dp[n][k]\) 为 \(n\) 以内使用了 \(pri[k]\) 以内的质数的数的最大质因子之和,答案就是: \[\sum_{k\leq n}dp[\lfl ...

  8. 常见的Socket网络异常场景分析

    原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 在目前微服务的背景下,网络异常越来越常见了,而有一些网络异常非常模糊,理解什么情况下会导致什么异常,还是有一定难度 ...

  9. Python 基础知识自检,离深入掌握 Python 还有多远

    1. 模块化编程思想 模块化编程是 Python 的基本思想.初学 Python,都应该使用过小海龟.随机.数学模块.使用模块之前,需要导入模块,然后根据自己的问题需要使用这些模块. Python 提 ...

  10. 了解Redis持久化

    Redis是一个键值对数据库服务器,由于Redis是内存数据库,那么有很多内存的特点,例如掉电易失,或者进程退出,服务器中的数据也将消失不见,所以需要一种方法将数据从内存中写到磁盘,这一过程称之为数据 ...