mysql基础
1、mysql的安装
[root@www ~]# yum install -y mysql-server mysql mysql-server
2、初始化mysql
/usr/bin/mysqladmin -u root password ‘new-password‘
提示给root用户创建密码
[root@www ~]# mysqladmin -u root password ‘heboan123‘
登录mysql
[root@www ~]# mysql -u root -p
Enter password:
自动启动
[root@www ~]# chkconfig mysqld on
3、mysql的配置文件
[root@www etc]# ls my.cnf
my.cnf
用户可以根据实际需求选择不同的配置文件复制到/etc下,改名为my.cnf,并根据实际需要做一些配置的改动
[root@localhost mysql]# pwd
/usr/share/mysql
[root@localhost mysql]# ls *.cnf
my-huge.cnf my-innodb-heavy-4G.cnf my-large.cnf my-medium.cnf my-small.cnf
4、mysql的数据文件
[root@www mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock test
[root@www mysql]# pwd
/var/lib/mysql
mysql和test是自带的两个数据库
5、mysql默认的日志文件
[root@www ~]# cat /var/log/mysqld.log
6、mysql的默认监听端口
[root@www ~]# netstat -antulp |grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1900/mysqld
7、连接远程的mysql服务器
[root@www ~]# mysql -h localhost(IP) -u root -p
登陆之后会显示客户端链接ID,这个数字记录了MySQL服务到目前为止的连接次数,没个新连接都会自动加1,本例中式9
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.73 Source distribution
8、查看数据库版本,
mysql> SELECT VERSION();
也使用同时查询两个语句
mysql> SELECT VERSION(),CURRENT_DATE;
9、SQL语句可以进行简单的运算
mysql> SELECT 4*4,4+4;
10、查看数据库
mysql> SHOW DATABASES;
创建数据库
mysql> CREATE DATABASE heboan;
删除数据库
mysql> DROP DATABASE heboan;
11、切换当前所使用的数据库(mysql默认不支持修改数据库的名称)
mysql> USE heboan;
Database changed
mysql> USE test;
Database changed
12、SQL(Structured Query Language)结构化查询语言
SQL能做什么?
面向数据库执行查询
可行数据库取回数据
可在数据库插入新的记录
可更新数据库中的数据
可从数据库删除记录
可创建新数据库
可在数据库中创建新表
可在数据库中创建存储过程
可在数据库中创建视图
可以设置表、存储过程和视图的权限
13、SQL语句分类
①Data Definition Language(DDL):数据定义语言
CREATE 在数据库中创建对象
ALTER 修改数据库结构
DROP 删除对象
RENAME 重命名对象
②Data Manipulation Language(DML):数据操纵语言
SELECT 从数据库中获取数据
INSERT 向一个表格中插入数据
UPDATE 更新一个表格中已有数据
DELETE 删除表格中的数据
③Data Control Language(DCL):数据控制语言
GRANT 赋予一个用户对数据库或数据表格等指定权限
REVOKE 删除一个用户对数据库或数据表格等的指定权限
14、数据是以表格形式保存:每一列是一个属性;没一行是一条记录
每个列(属性)以特定的数据类型保存
integer(size),int(size),smallint(size),tinyint(size) 存储整数数据
decimal(size,d),numeric(size,d) 存储浮点数数据
char(size) 存储固定长度字符串
varchar(size) 存储可变长度字符串
date(yyyymmdd) 存储日期
15、创建表格
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
...
);
如,我们希望创建一个表格lc_course保存课程信息,需要保存 课程编号、课程名称、课程长度、课程讲师和课程分类
CREATE TABLE lc_course(
id int,
course_name varchar(50),
course_length int(10),
teacher varchar(50),
category varchar(50)
);
----------------
mysql> USE heboan;
Database changed
mysql> CREATE TABLE lc_course(
-> id int,
-> course_name varchar(50),
-> course_length int(10),
-> teacher varchar(50),
-> category varchar(50)
-> );
Query OK, 0 rows affected (0.01 sec)
16、查看表格
mysql> SHOW TABLES;
17、查看表结构
mysql> DESCRIBE lc_course; 或者mysql> DESC lc_course;
虽然DESC可以查看表定义,但是其输出的信息还是不够全面,有时可以通过查看SQL语句来得到
mysql> SHOW CREATE TABLE emp \G; ##“\G”选项的含义是使得记录能够按照字段竖着排列,对于内容比较长的记录更易于显示
*************************** 1. row ***************************
Table: emp
Create Table: CREATE TABLE `emp` (
`ename` varchar(10) DEFAULT NULL,
`hiredate` date DEFAULT NULL,
`sal` decimal(10,2) DEFAULT NULL,
`deptno` int(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
ERROR:
No query specified
18、删除表
mysql> DROP TABLE lc_course;
19、修改表
—重命名表名
mysql> ALTER TABLE lc_course RENAME course;
—向表中添加一列
mysql> ALTER TABLE course ADD link varchar(200);
默认ADD增加的新字段是加在表的最后位置,first | after可以用来修改字段在表中的位置
例如:将新增加的字段link加在id之后
mysql> ALTER TABLE course ADD link varchar(200) after id;
修改字段link,将它放在最前面
mysql> ALTER TABLE course MODIFY link varchar(200) first;
—删除表中一列
mysql> ALTER TABLE course DROP link;
—修改一个列的数据类型
mysql> ALTER TABLE course MODIFY teacher varchar(100);
—重命名一个列
mysql> ALTER TABLE course CHANGE COLUMN teacher lecture varchar(100);
20、向表格中插入一条记录
INSERT INTO 表名称 VALUES (值1,值2,...) ##必须对应所有的列所有的值##
或
INSERT INTO 表名称(列1,列2) VALUES (值1,值2) ##针对特定的列##
mysql> INSERT INTO course VALUES(1,‘Install Linux‘,32,‘zhangsan‘,‘Basic‘);
mysql> INSERT INTO course(id,course_name,category) VALUES(2,‘GNOME‘,‘Basic‘);
在MySQL中,INSERT语句还有一个很好的特性,可以一次插入多条记录
INSERT INTO 表名称 VALUES (值1,值2,...),(值1,值2,...),...;
21、从表格中查询记录
SELECT 列名称1,列名称2... FROM 表名称;
或
SELECT * FROM 表名称;
mysql> SELECT * FROM course;
mysql> SELECT course_name FROM course;
22、按条件查询数据
SELECT 列名称 FROM 表名 WHERE 列 运算符 值;
mysql> SELECT * FROM course WHERE course_name=‘GNOME‘;
mysql> SELECT * FROM course WHERE course_length>10;
23、SQL Where支持的运算符
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某范围内
LIKE 搜索某种模式
24、从表格中删除记录
DELETE FROM 表名称 WHERE 列 运算符 值;
或
DELETE * FROM 表名称;
25、更新一条记录
UPDATE 表名称 SET 列名称=新值 WHERE 列=值;
mysql> UPDATE course SET lecture=‘heboan‘ WHERE id=1;
26、返回结果删除重复项
SELECT DISTINCT 列名称 FROM 表名称;
mysql> SELECT * FROM course;
mysql> SELECT lecture FROM course;
mysql> SELECT DISTINCT lecture FROM course;
27、WHERE条件中使用逻辑组合
SELECT * FROM 表名称 WHERE 条件1 AND 条件2;
SELECT * FROM 表名称 WHERE 条件1 OR 条件2;
mysql> SELECT * FROM course WHERE lecture=‘heboan‘ AND category=‘Adv‘;
28、对查询结果按指定列进行排序
SELECT * FROM 表名称 ORDER BY 列名称;
SELECT * FROM 表名称 ORDER BY 列名称 DESC;
mysql> SELECT * FROM course ORDER BY course_length;
mysql> SELECT * FROM course ORDER BY course_length DESC;
对于排序后的记录,如果希望只显示一部分,而不是全部,这时,就可以使用LIMIT关键字来实现
SELECT ...[LIMIT offset_start,row_count]
显示course表中按照course_length排序后的前3条记录
mysql> SELECT * FROM course ORDER BY course_length LIMIT 3;
如果要显示course表中按照course_length排序后的第二条记录开始,显示3条记录
mysql> SELECT * FROM course ORDER BY course_length LIMIT 1,3;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。