MySQL数据库基础和SQL语言入门

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。

  MySQL的安装和配置

  相关概念:

  数据库:数据的仓库,存储数据的地方。

  表:分类对数据进行存储,实际保存数据的地方

  列(字段):具体的一项信息,如:姓名、年龄

  行(记录):实际的实体信息

  主键:能唯一地标识一行记录的列

  Navicat图形工具的使用:

  NavicatforMySQL是常用的MySQL客户端工具,可以从网上下载,免费使用30天。

  MySQL数据类型:

  数据类型

  所占字节

  取值范围

  tinyint

  1字节

  -128~127

  smallint

  2字节

  -32768~32767

  mediumint

  3字节

  -8388608~8388607

  int

  4字节

  范围-2147483648~2147483647

  bigint

  8字节

  +-9.22*10的18次方

  float(m,d)

  4字节

  单精度浮点型,m总个数,d小数位

  double(m,d)

  8字节

  双精度浮点型,m总个数,d小数位

  decimal(m,d)

  decimal是存储为字符串的浮点数

  CHAR

  0-255字节

  定长字符串

  VARCHAR

  0-255字节

  变长字符串

  TINYBLOB

  0-255字节

  不超过255个字符的二进制字符串

  TINYTEXT

  0-255字节

  短文本字符串

  BLOB

  0-65535字节

  二进制形式的长文本数据

  TEXT

  0-65535字节

  长文本数据

  MEDIUMBLOB

  0-16777215字节

  二进制形式的中等长度文本数据

  MEDIUMTEXT

  0-16777215字节

  中等长度文本数据

  LOGNGBLOB

  0-4294967295字节

  二进制形式的极大文本数据

  LONGTEXT

  0-4294967295字节

  极大文本数据

  VARBINARY(M)

  允许长度0-M个字节的定长字节符串

  值的长度+1个字节

  BINARY(M)

  M

  允许长度0-M个字节的定长字节符串

  SQL语言:

  SQL全称是结构化查询语言(StructuredQueryLanguage)。使用SQL能进行数据库的增删查改。学习数据库的基本核心内容就是SQL。

  SQL分类如下:

  数据定义语言(DDL:DataDefinitionLanguage)

  数据操作语言(DML:DataManipulationLanguage)

  数据查询语言(DQL:DataQueryLanguage)

  数据控制语言(DCL:DataControlLanguage)

  一、DDL

  数据库定义语言:

  创建数据库

  createdatabase数据库名;

  使用数据库

  use数据库名;

  删除数据库

  dropdatabase数据库名;

  dropdatabaseifexists数据库名;

  创建表

  createtable表名(

  列名数据类型约束,

  ...

  );

  主键:primarykey

  自动增长:auto_increment

  删除表

  droptable表名;

  droptableifexists表名;

  练习:

  创建my_db数据库

  在my_db中,创建学生表,包含编号(主键,自增)、姓名、年龄和地址

  二、DML

  数据新增

  insertinto表名(列1,列2...)values(值1,值2...)

  示例:

  --插入一行记录

  insertintostudent(name,age,gender,address)

  values(‘张三‘,20,‘男‘,‘湖北武汉‘);

  --插入多行记录

  insertintostudent(name,age,gender,address)

  values

  (‘李四‘,20,‘男‘,‘湖北武汉‘),

  (‘李大四‘,22,‘女‘,‘北京‘),

  (‘李小四‘,25,‘女‘,‘北京‘),

  (‘李四四‘,27,‘女‘,‘上海‘);

  --将表中的数据插入到其它表

  insertintostudent2(name,age,gender,address)

  selectname,age,gender,addressfromstudent;

  注意:

  1、自动增长列不要添加数据

  2、列的数量、类型和顺序要和值一致

  数据修改

  update表名set列1=值1,列2=值2where条件

  示例:

  --更新李小四的地址为四川成都

  updatestudentsetaddress=‘四川成都‘

  wherename=‘李小四‘;

  --更新多列

  updatestudentsetaddress=‘四川成都‘,age=18

  wherename=‘李小四‘;

  数据删除

  deletefrom表名where条件

  示例:

  --删除id=2的学生

  deletefromstudentwhereid=5;

  练习:

  在学生表中添加5行记录,

  更新id为5的学生年龄为22

  删除id为3的学生

  三、DQL

  查询所有数据

  select*from表;

  查询指定字段的所有数据

  select列1,列2from表;

  where条件查询

  select*from表where条件

  =、!=、in、notin、and、or

  示例:

  --查询所有行所有列

  select*fromstudent;

  --查询部分列

  selectname,addressfromstudent;

  --添加where条件查询id为2的学生

  select*fromstudentwhereid=2;

  --查询id不为2的

  select*fromstudentwhereid!=2;

  --查询地址为湖北武汉以及四川成都的学生

  select*fromstudentwhereaddress=‘湖北武汉‘oraddress=‘四川成都‘;

  --查询年龄20岁以上的男的

  select*fromstudentwhereage>=20andgender=‘男‘;

  --查询地址为湖北武汉以及四川成都的学生2

  select*fromstudentwhereaddressin(‘湖北武汉‘,‘四川成都‘);

  --查询地址不是湖北武汉以及四川成都的学生

  select*fromstudentwhereaddressnotin(‘湖北武汉‘,‘四川成都‘);

  去掉重复数据

  distinct关键字

  selectdistinct列from表;

  示例:

  --查询学生的地址,不重复

  selectDISTINCTaddressfromstudent;

  --给列设置别名

  selectid编号,name姓名,age年龄,gender性别,address地址fromstudent;

  --查询年龄在20到25之间的女生

  select*fromstudentwhereage>=20andage<=25andgender=‘女‘;

  select*fromstudentwhereagebetween20and25andgender=‘女‘;

  --查询北京或武汉的男生

  select*fromstudentwhereaddressin(‘北京‘,‘湖北武汉‘)andgender=‘女‘;

  排序查询

  select*from表orderby列desc\asc

  示例:

  --按年龄升序排序

  select*fromstudentwheregender=‘男‘orderbyageasc;

  --降序

  select*fromstudentorderbyagedesc;

  分页查询

  limitn;返回长度为n的行

  limitn,m;返回从n位置,长度为m的行

  select*fromtb_namelimit5;显示结果的前5条记录

  select*fromtb_namelimit0,5;区段查询

  示例:

  --按年龄升序排序

  select*fromstudentwheregender=‘男‘orderbyageasc;

  --降序

  select*fromstudentorderbyagedesc;

  --通过limit限制行数前5行

  select*fromstudentlimit5;

  --通过limit分页查询第一页第0行到第5行,第二页第6行到第10行...

  select*fromstudentLIMIT0,5;

  select*fromstudentLIMIT5,5;

  select*fromstudentLIMIT10,5;

  练习:

  年龄最大的男学生

  年龄最小的五个女学生

  聚合函数

  求和:sum

  求平均值:avg

  求最大值:max

  求最小值:min

  求数量:count

  示例:

  selectsum(col_name)fromtb_name;

  分组查询

  groupby分组列

  where在分组之前进行条件筛选

  having在分组之后进行条件筛选

  where-->groupby--->having

  示例:

  --使用聚合函数

  selectsum(age)总年龄,avg(age)平均年龄,

  max(age)最大年龄,min(age)最小年龄,count(*)学生数量fromstudent;

  --求来之不同地方的学生人数

  selectaddress籍贯,count(*)人数fromstudentgroupbyaddress;

  --求男女学生的人数

  selectgender性别,count(*)人数,avg(age)平均年龄fromstudentgroupbygender;

  --求人数超过5人的籍贯

  selectaddress籍贯,count(*)人数fromstudent

  groupbyaddresshavingcount(*)>=5;

  --年龄总和超过200的性别

  selectgender性别,sum(age)总年龄fromstudent

  groupbygenderhavingsum(age)>200;

  模糊查询

  通配符:

  %匹配任意多字符

  _匹配一个字符

  like关键字

  示例:

  --查找所有姓李的人

  select*fromstudentwherenamelike‘李%‘;

  select*fromstudentwherenamelike‘%大%‘;

  select*fromstudentwherenamelike‘李_‘;

  ?

原文地址:http://blog.51cto.com/13201210/2092817

时间: 2024-08-03 04:23:25

MySQL数据库基础和SQL语言入门的相关文章

数据库基础:SQL语言基本使用

SQL ? 结构化查询语言.同时也是数据库脚本文件的扩展名. ? 用于存取数据以及查询.更新和管理关系数据库系统. create 增 delete 删 update 改 select 查 read 读 命令连接到数据库 mysql -u 用户名 -h 服务端IP地址 -p 密码 例: mysql -u root -h 127.0.0.1 -p 123456 增--creat,insert create database test; #创建名为test的数据库 create table xscj<

MySQL数据库基础(三)——SQL语言

MySQL数据库基础(三)--SQL语言 一.SQL语言简介 1.SQL语言简介 SQL是结构化查询语言(Structured Query Language),是用于访问和处理数据库的标准的计算机语言.SQL语言的功能如下:A.SQL面向数据库执行查询B.SQL可从数据库取回数据C.SQL可在数据库中插入新的记录D.SQL可更新数据库中的数据E.SQL可从数据库删除记录F.SQL可创建新数据库G.SQL可在数据库中创建新表H.SQL可在数据库中创建存储过程I.SQL可在数据库中创建视图J.SQL

MySQL数据库基础(六)——SQL插入、更新、删除操作

MySQL数据库基础(六)--SQL插入.更新.删除操作 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO table_name (column_list) VALUES (value_list); insert into `TSubject` (subjectID,subjectName,BookName,Publisher) values ('0004','英语','大学英语走遍美国','清华出版社')

Oracle PL/SQL语言入门

简介:PL/SQL(Procedural Language/Structured Query Language)是一种过程化语言,属于第三代语言,它与C.C++.Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑.它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言. 一.背景介绍 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通

MySQL数据库新特性之存储过程入门教程

在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用户入门. 存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 .同时,存储过程可以接收和输出参数.返回执行存储过程的状态值,也可以嵌套调用. 存储过程的优点 作为存储过程,有以

MySQL数据库基础(一)——MySQL数据库简介

MySQL数据库基础(一)--MySQL数据库简介 一.MySQL简介 1.MySQL简介 MySQL是一个轻量级关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.目前MySQL被广泛地应用在Internet上的中小型网站中,由于体积小.速度快.总体拥有成本低,开放源码.免费,一般中小型网站的开发都选择Linux + MySQL作为网站数据库.MySQL是一个关系型数据库管理系统,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据

mysql数据库基础的简单操作指南

最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据库.比mssql最大的优势在于开源,免费.希望与大家共同进步. mysql数据库基础的简单操作指南:首先进入mysql:mysql -u root -p 1.建库: create database 库名称; 例如:create database mydata;(创建一个名为“mydata”的库):

mysql数据库基础(一)

Mysql列子查询及IN,ALL,SOME,ANY的使用 table1: s1 2 10 table2: s2 5 12 20 列子查询中使用IN,ANY,SOME和ALL操作符. IN:在指定项内,同IN(项1,项2,..) ANY:与比较操作符联合使用,接在比较操作符后面表示与子查询返回的任何值比较为TRUE,则返回TRUE. SOME:ANY的别名,较少使用. ALL:与比较操作符联合使用,表示与子查询返回的所有值比较都为TRUE,则返回TRUE. 细节:IN 是 = ANY 的别名,二者

MYSQL数据库基础学习笔记

一.mysql的安装与初始化: 安装mysql命令: yum install -y mysql-server mysql mysql-devel 初始化: service mysqld start   //第一次启动mysqld服务会自动初始化: 创建用户并初始化密码: mysqladmin -u root passwd '密码' 登陆mysql: mysql -u root -p 退出mysql: quit.exit 设置mysqld服务自启动: chkconfig mysqld on mys