MySQL学习笔记-基础篇
来源:互联网 发布:php 分班问题 编辑:程序博客网 时间:2024/05/22 10:27
一、安装与登录
这里我使用的环境是Ubuntu 14.04。安装命令如下:
#安装 MySQL 服务端、核心程序sudo apt-get install mysql-server#安装 MySQL 客户端sudo apt-get install mysql-client
安装结束后,用以下命令验证是否安装并启动成功:
sudo netstat -tap | grep mysql
返回如下值,表示安装成功:
tcp 0 0 localhost:mysql *:* LISTEN 14691/mysqld
打开MySQL:
sudo service mysql start
需要登录MySQL,回车后输入root密码,此密码在MySQL安装时会要求设置:
sudo mysql -u root -p
退出MySQL可以使用:quit或exit命令。
二、基本操作
1. 对数据库的操作
#查看数据库 SHOW DATABASES;
#创建数据库 CREATE DATABASE db_name;
#连接数据库 USE db_name;
#删除数据库 DROP DATABASE db_name;
#引用已有数据库 SOURCE 数据库路径/文件名;
2. 对表的操作
#查看表 show tables;
2.1 创建表
(1)创建命令
#创建表CREATE TABLE <表名> (列名a 数据类型(数据长度) [约束],列名b 数据类型(数据长度) [约束],列名c 数据类型(数据长度) [约束]...);
#例 CREATE TABLE student ( id INT(10), name CHAR(12), sex ENUM('M','F'), age INT(3), class CHAR(8), GPA FLOAT(2) );
(2)数据类型
CHAR和VARCHAR的区别:对于字符串“abc”,若用CHAR(10)存储,则字符串存储将占用10个字节(包括7个空字符);而如果用VARCHAR(10)则只占用3个字节,10只是最大存储长度,当字符串的长度小于10时,按实际长度存储。
(3)约束
#例CREATE TABLE student(id int(10) not null primary key auto_increment,name char(12) not null,sex ENUM('M','F'),age INT(3),class CHAR(8),GPA DOUBLE(16,2) default(0.0));
2.2 插入数据
插入数据语句结构为:
INSERT INTO <表名> [(<字段名1>[,..<字段名n >])] VALUES(值1)[,(值n)]
#例INSERT INTO student VALUES (2013101101,'张三','F',20,'class2',3.3);INSERT INTO student (id,name,sex) VALUES(2013110110,'李四','M');
2.3 表的查询
(1)表的查询语句结构
表的查询语句结构为:
SELECT 要查询的列名FROM 表名WHERE 限制条件;
#例1:查询所有列SELECT *FROM student;
#例2:查询GPA大于3.0的所有学生的学号SELECT idFROM studentWHERE GPA>3.0;
(2)WHERE查找限制条件
- 数学符号 (=,<,>,>=,<=)
举例见上面的例2。 - AND / OR / BETWEEN … AND …
例:SELECT id FROM studnt WHERE age BETWEEN 21 AND 25;
或SELECT id FROM studnt WHERE age > 21 AND age < 25;
- IN / NOT IN
SELECT id,name,class FROM student WHERE class IN ('class1','class5');
- LIKE 和通配符
关键字 LIKE 在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符。#查找2013级所有章姓同学的GPA
SELECT id,GPA FROM student WHERE name LIKE '章%' AND id LIKE '20132201___
(3)排序与分组:ORDER BY & GROUP BY
默认情况下,ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。
#例:对学生表进行GPA的降序排序SELECT *FROM studentORDER BY GPA DESC;
GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组。字段中值相等的为一组。基本的语法格式如下:
GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]
- 属性名:是指按照该字段的值进行分组。
- HAVING 条件表达式:用来限制分组后的显示,符合条件表达式的结果将被显示。
- WITH ROLLUP:将会在所有记录的最后加上一条记录。加上的这一条记录是上面所有记录的总和。
#例:对学生表按性别分组,并通过select返回结果SELECT *FROM studentGROUP BY sex;
需要注意的是,使用MySQL里的GROUP BY分组语句查询的话,只能返回每个组里的第一条记录。
(4)SQL内置函数
SQL有5个内置函数,都是对SELECT的结果进行操作。
#例:查询GPA大于3.8的学生数量(AS用于重命名查询结果)SELECT COUNT(id) AS BestStudentNumberFROM studentWHERE GPA >= 3.8;
(5)子查询
SELECT查询中的WHERE子句是可以嵌套子查询的,即在查询结果中再次进行查询。
#例:查询二班所有学生的平均年龄SELECT AVG(age)FROM studentWHERE id IN {SELECT idFROM studentWHERE class = 'class2'};
2.4 其他操作:删、改
(1)对表的操作
#删除一个表DROP TABLE 表名字;
#重命名一个表,三种方式同样的效果RENAME TABLE 原名 TO 新名;ALTER TABLE 原名 RENAME 新名;ALTER TABLE 原名 RENAME TO 新名;
(2)对表结构的修改
#增加一列,不使用AFTER关键字时默认插在表的最后一列#使用FIRST关键字则将列放在第一列的位置ALTER TABLE 表名字 ADD [COLUMN] 新列名字 数据类型 [约束] [FIRST]/[AFTER 表中某列];
#删除一列ALTER TABLE 表名字 DROP [COLUMN] 列名字;
#修改一列,可用于重命名、更改数据类型及约束。数据类型不可省略。ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
#仅修改数据类型ALTER TABLE 表名字 MODIFY 列名字 新数据类型;
注:修改数据类型必须小心,这可能会导致数据丢失。
(3)对表内容的修改
#对值的修改,一定要有WHERE条件UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;#例UPDATE student SET age=22 WHERE name="张三";
#删除一行数据记录DELETE FROM 表名字 WHERE 条件;
0 0
- mysql学习笔记--基础篇
- MySQL学习笔记-基础篇
- mysql基础学习笔记
- Mysql基础学习笔记
- Mysql学习-基础笔记
- Mysql基础学习笔记
- Mysql安全基础篇学习笔记
- 《MySQL高效编程》学习笔记--基础篇
- MySQL基础语句【学习笔记】
- mysql数据库基础学习笔记
- MySQL基础之学习笔记
- mysql基础学习笔记-2
- Mysql基础(学习笔记)
- [学习笔记]MySQL基础使用
- MySQL学习笔记(1)MySQL基础
- PHP与MYSQL学习笔记--基础篇1
- mysql学习-基础篇
- MySQL学习---基础篇
- NOIP2016不正经总结
- android AsyncTask基础用法及个人理解(上)
- Unity5.x制作FPS游戏
- 数据类型
- Java文件读写
- MySQL学习笔记-基础篇
- 记android学习之路----数据持久化之SQLite
- Caffe配置---配置Windows版 Caffe
- 直接插入排序与折半排序
- 【MongoDb入门】细说高级操作
- maven_01_HelloWorld(ji)
- scanf用法
- cookie案例,显示用户上次访问时间
- 【MongoDb入门】 索引操作