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;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。