MySql数据库入门与常用sql语句

1.常见数据库

    1.oracle数据库(大型)   ------oracle甲骨文2.DB2数据库(大型)      ------IBM3.sqlserver(中型)      ------微软4.MySQL(小型)          ------oracle

2.什么数据库

   持久化技术1.IO2.数据库

数据库:就是一个文件系统,通过标准SQL语言操作文件系统中数据 ---- 用来存放软件系统的数据

3.数据库中存放的是什么样的数据?

关系型数据库

4.mysql数据库的安装与卸载

    1.卸载1.查找数据文件的位置因为数据文件与安装文件可能不在一个位置删除数据库后可以不会将数据文件删除datadir=""2.正常删除数据库在控制面板jiangmysql删除3.删除数据文件4.将mysql遗留文件删除2.安装mysql数据库的默认端口33061.关于编码选择utf82.目录配制环境变量path3.设置root密码测试是否成功cmd------>mysql -u root -p 回车输入密码如果看到 mysql 成功3.重置mysql密码1.在运行中输入 services.msc 停止mysql服务2.在cmd下输入  mysql --skip-grant-tables 启动服务器 光标不动(不要关)3.新打开cmd  输入mysql -u root -p use mysql;update user set password=password('abc') WHERE User='root'  ;4.关闭两cmd 任务管理器中结束mysql进程5.在服务管理页面 重启mysql服务

5.mysql数据服务器与数据库与表的关系

          mysql -h   主机名  -p 端口 -u用户名 -p输入密码             如果自己电脑安装了mysql服务器mysql -u root -p

6.数据在数据烤肉中的存储方式 与java中的数据关系

数据库中表中的一个字段相当于一个属性
一个记录相当于一个类的对象

7.sql介绍

        sql结构化查询语句sql非过程性语言sql分类(四种)DDL  数据定义语言  用来定义数据库 表等DML  数据操纵语言  update insert deleteDCL  数据控制语言  用户权限事务处理DQL(重点)  数据查询语言  select

标题数据库(DB)

1.创建数据库

1.1 简单创建数据库

create database 数据名;

1.2 创建数据库时可以指定编码集与校验规则

CHARACTER SET:知道数据库采用的字符集
COLLATE:指定数据库字符集的比较方式create database 数据库名 character set 编码集 collate 校验;create database  数据库名 character set="utf8" collate="utf8_general_cl";
` ` `
### 2.使用数据库```sql
use 数据库名称

3.删除数据库

 drop database 数据库

4.查看数据库

show databases; //查看所有数据库
show create database  数据库名称 ;  //查看指定数据库

5.修改数据(了解)

alter database 数据库名 character set="编码集" collate="校验"

6.查看当前使用的数据库

select database();

练习

创建一个名称为mydb1的数据库.create  database  mysql;
创建一个使用utf8字集的mydb2create database mydb2 character set="utf8" ;
创建一个使用utf8字符集,并带校对规则的mydb3数据库       create database mydb3 character set="utf8" collate="utf_general__cl";

数据表(table)

1.简单创建

create table 表名(字段名称1 类型,字段名称2 类型,..........字段名称n 类型
)

2.指定编码与校验

   create table 表名(字段名称1 类型,字段名称2 类型,..........字段名称n 类型) character set=编码 collate=校验

3.mysql数据表中的类型

                   与java中的类型对比Java类型                     mysql类型整型byte| short |int |long          TINYINT| SMALLINT  INT | BIGINTboolean                      booleantrue/false               字符串(字符)                 varchar charchar与varchar的区别varchar 可变`字符串 "hello"char 不可变        "hello"日期                          日期java.util.Date                date -----2010-10-10java.sql.Date                 datetime--2010-10-10 11:11:11java.sql.Time                 time      11:11:11java.sql.TimeStamp            timestamp 15852156486  小数float                          floatdouble                         doubledecimal数据库中的大数据在数据库中的大数据使用  IOInputStream/OutPutStream------------blobReader/Writer           ------------text---------------------------date        日期time        时间timestamp   时间戳datetime    日期时间示例:创建一个类                             create  table student(id  int,name varchar(10),birthday date,chinese decimal(5,2)     [总共5位数,小数点后面2为])         

4.查看表结构

show tables;
show create table student;

练习

   1.创建  create database 库名 character set="utf8" collate="utf8_general_ci";2.删除  drop database 库名3.查看  show database;   show create database 库名;4.修改数据库编码  alter database 库名 character set="" collate="";5.切换数据库  use 库名;6.查看当前使用的数据库 select database();

操作表

1.创建

  create table 表名(字段名   类型) character set="" collate="";

2. 表中的字段类型

                           intvarchar  charfloat double decimaltext blobdate datetime

3.查看

  desc 表名;show tables;show create table 表名;

表的约束

表的约束一共有六种
约束用来保证数据有效性和完整性

主要介绍三种

1.主键约束

主键有两个特点:非空 唯一id int primary key auto_increment, //mysql字段自动增长:auto_increment//sqlserver自动增长:identity(1,1)//oracle自动增长    sequence序列

2.非空约束

name varchar(5) not null unique, //不为空,且唯一

3.唯一约束

表的结构修改

1.添加字段

  alter table 表名 add 字段 类型;alter table users add birthday date;

2.修改字段类型

                  alter table 表名 modify 字段 类型 ;alter table users modify birthday datetime;

4.删除字段

                  alter table 表名 drop 字段;alter table users drop  birthday;

3.修改字段 change

                  alter table users change 旧字段名称 新字段名称 类型;alter table users change birthday entry_date date;

5.修改表的字符集

                  alter table 表名 character set=字符集;

6.修改表名

                  rename table 表名 to 新表名rename table users to emp;

7.删除主键

           alter table 表名 drop primary key;主键不能自动增长create table users(id int primary key auto_increment,name varchar(20),birthday date,)

操作数据表(update delete insert select)

最简单的查询

select * from 表名; 查看表中的数据

1.insert操作

 基本格式1insert into 表名(字段,...)  values(值);            insert into users(id,name,birthday) values (1,'Tom','1990-1-1');     注意:只有数值类型可以不使用引号,其他类型必须要单引号;            基本格式2如果是对表中所有字段添加操作insert into 表名(字段名) values(值1,...);基本格式3可以对指定字段进行添加操作insert into 表名(字段名) values(值,...) ;        insert into users(id,name) value (1,'james');           如果表中的某个字段是auto_increment ,添加时可赋值为null,这样会自动增长插入中文纪录insert into users values(null,'张三');  错误原因:mysql  client   采用默认字符集修改编码1.控制台命令行.show variable like 'character%';修改客户端编码set character set_client =gbk;//输入时编码正确修改结果编码集set character_set_result=gbk;//查看时编码正确2.修改配置文件. my.ini在my.ini文件中找到[client]port=3306[mysql]               default-character-set=编码这样修改后对character_set_clientcharacter_set_resultscharacter_set_connection编码进行修改这三个是针对客户端

2. update语句

  基本格式:update 表名 set 字段=值;一般情况下会加上where条件,如果不加,是对整个字段赋值update 表名 set 字段1=值2,字段2=值2... where id=1,id=2;

3.delete 语句

delete from 表名 where 条件如果不加条件,相当于删除表中的所有数据delete是删除记录的,不能删除某一列数据只能删除表中内容的,而不能删除表结构面试题:delete.drop,truncate区别1.detelete,truncate是用来删除表中数据,而drop是删除表结构truncate 是先将表结构删除,再重新创建表结构.   2. delete 是受事务控制的,可恢复(DML)truncate不受事务控制,不可恢复(DDL)3.delete可以对指定数据进行删除truncate 只能删除所有数据drop table 表名truncate table 表名

4. select 语句

基本select (1)

select 字段 from 表名;select * from 表;代表查询表中所有字段值,不建议用如果支队某几个字段进行查询  select 字段1,字段2,... from 表名.distinct 用来消除重复值

基本select (2)

     1.在select 语句可以对查询的字段进行运输2.可以使用as给字段起别名(as可以省略) 查询学生三科成绩,显示时,显示姓名与三科总成绩.      select name as '姓名' ,(Chinese+math+English)/3 as '平均分' from student;select name,Chinese,math+10,English from student;查询时可以使用where子句进行过滤查询where 经常使用的运算符1.关系运算符    >  <  <=  >= =  <>或!=select name,Chinese,math,English from student where Chinese in(85,95);2.in3.逻辑运算符 and or not       4.is null 判断空  is not null 判断非空5.like  模糊查询6.between ...and...相当于  大于 and 小于注意 between后是小值 and后面是大值查询语文成绩在80-90之间的select * from student where Chinese<=90 and Chinese>=80;select *from student where Chinese between 80 and 90;查询姓张的人的信息select * from student where name like '张%'查询姓名为关某某的人的信息select * from student where name like '张_'  (只找一个)  %匹配多个字符_匹配一个字符
select 中的order by

排序:

select 字段 from 表名 where 条件 order by 字段 asc|desc;asc  升序desc 降序注意order by 位于语句的最后select * from student order by Chinese desc; select id,name,Chinese,math,English,Chinese+math+English as total  from student  order by Chinese+math+English desc;

聚集函数 (统计函数 聚合函数)

count
select count(*) from 表名;
查看表中的记录条数如:统计一个班共有多少个学生?select count (name) from student;统计一个班语文成绩大于90的学生有多少个?>select count(*)  from student where Chinese>90;统计总分大于260的认输有多少个?select count(*) ,Chinese+math+English from student where Chinese+math+English>260;
sum
统计符合条件的列的总和聚集函数当某一字段的值为null时,会自动转换为0
而如果null与其它值做+运算,结果为null.mysql中有一个函数ifnull
ifnull(English,0)求所有学生的总成绩如果成绩为null,按0取
select sum(ifnull(Chinese,0)+ifnull(math,0)+ifnull(English,0)) from student;练习  统计一个班的数学总成绩?select sum(math) from student ;统计一个班的语文,数学,英语各科总成绩   select sum(Chinese),sum(math),sum(English) from student;    统计一个班的语文平均分select sum(Chinese)/count(Chinese) from student;
avg
平均值
select  avg(math) fromstudent;求一个班的总分平均分 select (sum(Chinese)+sum(math)+sum(English))/count(*) from student;select avg (Chinese+math+ifnull(English,0)) from student;  max/min求列中最大值/最小值练习:求班级最高分和最低分select max(Chinese+math+English) as '最高分',  min(Chinese+math+English) as '最低分' from student;

5.mysql数据库的备份与恢复

1.数据库备份

在数据外面对数据库内容进行备份
cmd > mysqldump  -u  用户名  -p 数据库名 > 文件名.sql

2.恢复数据库

首先要创建出数据库,然后进入数据库,在数据库内部进行
source 文件名.sql  //在mysql内部使用在外部对数据库进行恢复也必须先把数据库创建出来
mysql -u 用户名 p 数据库名<文件名.sql   //在cmd下使用

2.多表设计

在实际开发中,表与表之间是存在关系的,也就是说,表与表之间存在关联

关联分为几种:

1.1对1

        例如     人与身份证假设   人具有   姓名  年龄身份证   身份证号1对1关系怎样关联数据?在任意一方只要添加一个字段来描述关联关系

2.1对多(开发中最常见的一种关系)

               例如:员工与部门假设:员工有信息:   员工信息   员工工资部门信息:     部门名称   部门地址一个员工属于一个部门,一个部门可以有多个员工1对多关系怎样关联数据?在多的地方添加1的一方的地段信息

3.多对多

                  例如:老师与学生                    老师属性   姓名学生属性   姓名              多对多关系怎样关联数据?会产生一张中间表,用来描述多对多关系.    使用外键约束,可以保证数据完整性

多表查询

          笛卡尔积 多表关联sqlselect* from 表1,表2;select * from emp,dept;怎样消除笛卡尔积将要查询的两种表的关联数据进行等式比较.       select  * from 表1,表2 where 表1,字段=表2,字段;select * from emp inner join dept where emp.dept_id=dept.id;

MySql数据库快速入门与常用sql语句相关推荐

  1. 超经典两万字,MySQL数据库快速入门。

    「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 「专栏简介」:此文章已录入专栏<MySQL数据库快速入门> MyS ...

  2. 13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  3. MySQL(用户管理,常用sql语句,数据库备份恢复,MySQL调优,恢复误操作数据)...

    一.MySQL用户管理. 一个MySQL数据库里可以跑多个库,总不能给所有人的程序员root用户,则可以给他们单独的用户访问数据库. 创建用户:(grant all on *.* to 'user1' ...

  4. MySQL、Postgresql、Oracle常用SQL语句(主要演示下DDL的区别)

    SQL分类 一.DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等.关键字:create, drop,alter 等 DDL对于不同的数据库实 ...

  5. MySQL数据库快速入门到精通(超详细保姆级,建议收藏)这可能是目前最适合你的教程,从基础语法到实例演示。

    前言 此文章旨在为需要掌握快速开发和复习MySQL的同学所准备,您完全可以把此文章当作参考文档来使用,本文将尽量精简,使您快速的理解和掌握语法. 关于MySQL MySQL是一个关系型数据库管理系统, ...

  6. 向MySQL数据库中插入数据,sql语句没问题,但插入失败也不报错?

             这几天在做一个Javaweb的图书商城项目,在操作数据库的过程中,遇到一个问题? 向数据库中的order数据表中插入数据时,一直插入数据失败.没有报SQL语句语法错误,Eclipse ...

  7. 一个系列搞懂Mysql数据库12:从实践sql语句优化开始

    Table of Contents 字段 索引 查询SQL 引擎 MyISAM InnoDB 0.自己写的海量数据sql优化实践 mysql百万级分页优化 普通分页 优化分页 总结 除非单表数据未来会 ...

  8. MySQL数据库快速入门

    MySQL基础 1.数据库相关概念 以前我们做系统,数据持久化的存储采用的是文件存储.存储到文件中可以达到系统关闭数据不会丢失的效果,当然文件存储也有它的弊端.假设在文件中存储以下的数据: 姓名 年龄 ...

  9. MySQL数据库的查询:常用查询语句、MySQL函数、多表查询、视图表

    文章目录 一.构造数据 二.常用的查询语句 1.SELECT:字段表达式 2.FROM 子句 3.WHERE 子句:按指定条件过滤 4.GROUP BY:分组查询 5.HAVING 6.ORDER B ...

  10. MySQL数据库常安装及常用sql命令

    1数据库简介 1.1数据库概念及作用 数据库(Database)时按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口来创建,访问,管理,搜索和复制所保存的数据. 我们可 ...

最新文章

  1. 解决VC++ Error spawning cl.exe 问题·
  2. 计算机基础算术加法,2011年自考计算机基础知识精选部分及答案(一)-2
  3. DataGridView 单元格验证
  4. Luogu 4721 【模板】分治 FFT
  5. Java华丽转身 —— GUI编程宝典
  6. cgo 调用dll Failed to load xxxxx.dll: The specified module could not be found.
  7. LoadRunner常见错误代码解决方案
  8. 期货一个价格变动对应价值变化
  9. win10自带抓包工具_Win10商店抓包工具
  10. 测试软件测显卡有啸叫,完美解决 显卡电流声!显卡啸叫!吱吱的电流声!附解决方案!...
  11. 高等数学-考试常用的三角函数公式
  12. 成都中级职称评定 计算机,成都职称评审
  13. 100以内的勾股数python_Python实现获取前100组勾股数的方法
  14. Day3-中文分词技术(常用分词技术介绍)
  15. Eclipse Neno.3 + Jrebel 7.0.9 图文在线安装
  16. 2021 An Updated Comparison of Four Low Earth Orbit Satellite Constellation Systems to Provide Global
  17. windows server 2016 部署FTP服务器
  18. error C4996: 'stricmp': The POSIX name for this item is deprecated
  19. CSDN_获取积分制
  20. php 按键连击,写了一个独立按键 支持组合键、单键长按,连发功能的例子

热门文章

  1. linux如何从 命令行 将普通文件打印到 pdf
  2. MATLAB编程:绘制折线图 以及 画图的一些小技巧
  3. 足球机器人第一次作业:编写程序解析球员所看到和听到的信息。
  4. 超级加粗大标题Mogrt免费PR动态图形模板
  5. 把PDF/AZW/EPUB转成图片
  6. PHP之抖音无水印解析源码
  7. 让浏览器下载的文件不再是锁定状态
  8. 华为笔记本键盘说明图_电脑键盘的这些功能键的真正用法,你全都了解吗?
  9. AB压力测试(简易版操作)
  10. 第21篇 项目进度管理__关键路径法