mysql基础学习

目录

  • 安装mysql服务器

    • 查看系统版本
    • 开始安装mysql
    • 查看是否安装成功
    • 启动mysql
  • mysql学习
    • DDL 定义语言 (CREATE/DROP/ALTER)
    • DML 操作语言(INSERT/UPDATE/DELETE)
    • DQL 查询语言(SELECT)
    • DCL 控制语言(GRANT/REVOKE/COMMIT/ROLLBACK)

1.安装mysql服务器
  1.1 查看系统版本

[email protected]:~$ cat /etc/issue
Ubuntu 16.10 \n \l

[email protected]:~$ cat /etc/issue.net
Ubuntu 16.10
[email protected]:~$ uname -a
Linux yan 4.8.0-22-generic #24-Ubuntu SMP Sat Oct 8 09:14:42 UTC 2016 i686 i686 i686 GNU/Linux
[email protected]:~$

  

  1.2 开始安装mysql

[email protected]:~# apt-get install mysql-server
[email protected]:~# apt-get install mysql-client
[email protected]:~# apt-get install libmysqlclient-dev

  注意:安装software时,一定要是root用户登录哟,否则会报错(没有权限)

  1.3 查看是否安装成功

[email protected]:~# [ `ps aux | grep mysql | grep -v "grep" | wc -l` -ge 0 ] && echo -e "Install OK" || echo -e "Install fail"

  如果提示Install OK 则表示有进程 如果提示Install fail 则可能需要自己重新启动一下程序了
  重启命令:[email protected]:~# /etc/init.d/mysql restart

  

  1.4 启动mysql

[email protected]:~# mysql -uroot -p

  其中:mysql 代表mysql程序 -u代表USER -p 代表password
  综合起来就是:使用root用户(mysql用户和系统用户是两码事)来登录mysql并且有密码

2.mysql学习

  2.1 DDL 定义语言 (主要讲三个:CREATE/DROP/ALTER)
  新建数据库(新建了一个数据库,其名称为yan)

mysql> CREATE DATABASE yan;
Query OK, 1 row affected (0.00 sec)

  查看数据库(可见,yan已经创建成功了)

mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| yan |
+--------------------+
5 rows in set (0.00 sec)

  

  查看建库语句

mysql> SHOW CREATE DATABASE yan;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| yan | CREATE DATABASE `yan` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

  删除数据库

mysql> DROP DATABASE yan;
Query OK, 0 rows affected (0.00 sec)

  再次检查数据库(可见,yan这个数据库已经没有了)

  新建数据表
  需求:
  新建一个购物清单表

  新建数据库yan

mysql> CREATE DATABASE yan;
Query OK, 1 row affected (0.00 sec)

  设置为默认数据库

mysql> USE yan;
Database changed

  新建表shopping_info

mysql> CREATE TABLE shopping_info (
-> id INT(11) AUTO_INCREMENT,
-> invoice INT(30) NOT NULL UNIQUE,
-> name VARCHAR(50) NOT NULL,
-> price FLOAT NOT NULL,
-> PRIMARY KEY(id)
-> );
Query OK, 0 rows affected (0.33 sec)

再新建一个收据表

  新建表receipt_info

mysql> CREATE TABLE receipt_info (
-> id INT(11) AUTO_INCREMENT,
-> date date NOT NULL,
-> CONSTRAINT fk FOREIGN KEY(id) REFERENCES shopping_info(id)
-> );
Query OK, 0 rows affected (0.97 sec)

mysql>

  再新建一个数据表

mysql> CREATE TABLE user_info (
-> id VARCHAR(50) UNIQUE NOT NULL,
-> name VARCHAR(50) NOT NULL,
-> price FLOAT NOT NULL DEFAULT 0,
-> age INT(10) NOT NULL DEFAULT 0
-> );
Query OK, 0 rows affected (0.34 sec)

mysql>

  ALTER
  现在将表user_info更改为user_infomation

mysql> ALTER TABLE user_info RENAME user_information;
Query OK, 0 rows affected (0.14 sec)

  修改数据类型,先将price中的FLOAT数据类型修改为DOUBLE类型

mysql> ALTER TABLE user_information MODIFY price DOUBLE;
Query OK, 0 rows affected (0.74 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql>

  添加字段English_name至表user_info,位于最前面

mysql> ALTER TABLE user_information ADD english_name VARCHAR(20) NOT NULL FIRST;
Query OK, 0 rows affected (0.49 sec)
Records: 0 Duplicates: 0 Warnings: 0

  添加字段English_name1至表user_info,位于name后面

mysql> ALTER TABLE user_information ADD english_name_1 VARCHAR(20) NOT NULL AFTER name;
Query OK, 0 rows affected (0.62 sec)
Records: 0 Duplicates: 0 Warnings: 0

  删除字段 现在将english_name_1这个字段给删除掉

mysql> ALTER TABLE user_information DROP english_name_1;
Query OK, 0 rows affected (0.48 sec)
Records: 0 Duplicates: 0 Warnings: 0

  修改字段排序,现在将age这个字段给提到第一

mysql> ALTER TABLE user_information MODIFY age INT(10) NOT NULL DEFAULT 0 FIRST;
Query OK, 0 rows affected (0.44 sec)
Records: 0 Duplicates: 0 Warnings: 0

  删除receipt_info的外键约束

mysql> ALTER TABLE receipt_info DROP FOREIGN KEY fk;
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0

  删除数据表shopping_info

mysql> DROP TABLE shopping_info;
Query OK, 0 rows affected (0.21 sec)

  2.2 DML 操作语言(INSERT/UPDATE/DELETE)
  INSERT:
  1.向user_information这个表插入数据

mysql> INSERT INTO user_information VALUES (21,‘Ming‘,112,‘ming‘,12.5);
Query OK, 1 row affected (0.04 sec)

  2.插入部门内容

mysql> INSERT INTO user_information (id,age,english_name,name) VALUES (113,22,‘kun‘,‘Skun‘);
Query OK, 1 row affected (0.04 sec)

  3.利用单引号来转意

mysql> INSERT INTO user_information VALUES (13,‘xuzhneg‘‘s‘,123345,‘zheng‘‘s‘,123.5);
Query OK, 1 row affected (0.05 sec)

  UPDATE:
  1.修改user_information中age=21的user_information的name值,修改为Li

mysql> UPDATE user_information
-> SET name=‘li‘
-> WHERE age=21;
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0

  2.多表更新操作
  现向表receipt_info插入信息

mysql> INSERT INTO receipt_info VALUES (112,‘2017-3-27‘);
Query OK, 1 row affected (0.04 sec)

  多表更新,设置receipt.id的值,其中条件为receipt_info.id等于user_information.id的值

mysql> UPDATE receipt_info,user_information
-> SET user_information.age=100
-> WHERE receipt_info.id=user_information.id;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0

  DELETE:
  1.删除表receipt中id为112的数据

mysql> DELETE FROM receipt_info WHERE id=112;
Query OK, 1 row affected (0.04 sec)

  2.多表删除数据
  现向表receipt_info插入信息

mysql> INSERT INTO receipt_info VALUES (112,‘2017-3-27‘);
Query OK, 1 row affected (0.04 sec)

  删除user_information和receipt_info表中id相等的字段

mysql> DELETE receipt_info,user_information FROM user_informatiipt_info on,receWHERE user_information.ipt_info.id;
Query OK, 2 rows affected (0.04 sec)

  2.3 DQL 查询语言(SELECT)
  1.简单查询、查询user_information表中所有数据

mysql> SELECT * FROM user_information;
+-----+--------------+--------+---------+-------+
| age | english_name | id | name | price |
+-----+--------------+--------+---------+-------+
| 22 | kun | 113 | Skun | NULL |
| 13 | xuzhneg‘s | 123345 | zheng‘s | 123.5 |
+-----+--------------+--------+---------+-------+
2 rows in set (0.00 sec)

  2.根据条件查询、查询user_information表中age等于22的数据

mysql> SELECT * FROM user_information WHERE age=22;
+-----+--------------+-----+------+-------+
| age | english_name | id | name | price |
+-----+--------------+-----+------+-------+
| 22 | kun | 113 | Skun | NULL |
+-----+--------------+-----+------+-------+
1 row in set (0.00 sec)

  3.条件查询user_information表中price为NULL值的数据

mysql> SELECT * FROM user_information WHERE price is NULL;
+-----+--------------+-----+------+-------+
| age | english_name | id | name | price |
+-----+--------------+-----+------+-------+
| 22 | kun | 113 | Skun | NULL |
+-----+--------------+-----+------+-------+
1 row in set (0.00 sec)

  4.查询user_information中的数据,并且对age进行排序

mysql> SELECT * FROM user_information ORDER BY age;
+-----+--------------+--------+---------+-------+
| age | english_name | id | name | price |
+-----+--------------+--------+---------+-------+
| 13 | xuzhneg‘s | 123345 | zheng‘s | 123.5 |
| 22 | kun | 113 | Skun | NULL |
+-----+--------------+--------+---------+-------+
2 rows in set (0.00 sec)

  5.查询user_information中的数据,并且对age进行排序,且只输入1行

mysql> SELECT * FROM user_information ORDER BY age LIMIT 1;
+-----+--------------+--------+---------+-------+
| age | english_name | id | name | price |
+-----+--------------+--------+---------+-------+
| 13 | xuzhneg‘s | 123345 | zheng‘s | 123.5 |
+-----+--------------+--------+---------+-------+
1 row in set (0.00 sec)

  6.模糊匹配、查询user_information中的数据且Name是以z开头的字符串

mysql> SELECT * FROM user_information WHERE name like ‘z%‘;
+-----+--------------+--------+---------+-------+
| age | english_name | id | name | price |
+-----+--------------+--------+---------+-------+
| 13 | xuzhneg‘s | 123345 | zheng‘s | 123.5 |
+-----+--------------+--------+---------+-------+
1 row in set (0.00 sec)

  7.模糊匹配、匹配user_information中的id含1的信息

mysql> SELECT * FROM user_information WHERE id like ‘%1%‘;
+-----+--------------+--------+---------+-------+
| age | english_name | id | name | price |
+-----+--------------+--------+---------+-------+
| 22 | kun | 113 | Skun | NULL |
| 13 | xuzhneg‘s | 123345 | zheng‘s | 123.5 |
+-----+--------------+--------+---------+-------+
2 rows in set (0.00 sec)

  2.4 DCL 控制语言(GRANT/REVOKE/COMMIT/ROLLBACK)

时间: 2024-08-28 06:06:39

mysql基础学习的相关文章

MySQL基础学习之数据查询

一般查询 SELECT * FROM 表名 SELECT 属性名  FROM  表名 条件查询 SELECT 属性名 FROM 表名  WHERE 条件表达式 查询数据值1,数据值2的表单 SELECT *  FROM  表名  WHERE  属性名 [NOT] IN(数据值1,数据值2....) 查询数值1,数据2的表单 SELECT *  FROM  表名  WHERE  属性=值  AND 属性1=值1 查询数值1到数值2之间的表单 SELECT *  FROM  表名  WHERE  属

MySQL基础学习之函数

数学函数 绝对值      abs() 圆周率      PI() 平方根 sqrt() 模除取余   mod(被除数,除数) 随机数      rand() 四舍五入    round(数字) 次方         pow(5,2) e为底的指数函数  exp(数字) 字符串函数 字符长度       length(字符) 字符连接       concat(字符1,字符2) 带符号的字符连接    concat_ws('-','su','zhou') 字符插入      insert('su

MySQL基础学习之数据表

查看数据表 SHOW TABLE; 查看数据表详细结构 SHOW CREATE TABLE 表名\G; 创建数据表 CREATE TABLE 表名(数据名 类型,数据名1  类型2); CREATE TABLE department ( d_id INT(10) , d_name VARCHAR(20) , function VARCHAR(20) , address VARCHAR(30) ); 删除数据表 DROP TABLE 表名; 修改数据表 修改数据表名        ALTER TA

MySQL基础学习总结

1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层是存储引擎.虽然有很多不同作用的插件API,但存储引擎API还是最重要的.如果能理解MySQL在存储引擎和服务层之间处理查询时如何通过API来回交互,就能抓住MySQL的核心基础架构的精髓. 数据库系统实现了各种死锁检测和死锁超时机制,InnoDB目前处理死锁的机制是,将持有最少行级排它锁的事务进行

MySQL基础学习(1)

简介 ? ? ? ? MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. 基础用法 ? ? ? ? 略过MySQL 的安装部署,直接学习如何使用MySQL数据库 1.MySQL 连接 命令提示符连接:mysql -u root -p 2.创建数据库 CREATE DATABASE 数据库名; 例如:CREATE DATABASE myba

mysql 基础学习分析

数据库--主要包括三方面:数据存储,数据管理,数据库应用. 数据存储--就是存储数据 数据管理--操作存储数据 数据库应用--调用数据管理,操作存储数据. 数据库连接--如何可以访问到数据库 实现技术 odbc--统一接口,支持多种语言 jdcb--java开发规范之一,java开发连接数据库 数据库语言SQL --对数据库数据操作的结构化语言 区分为 DDL-定义(create ,drop ,alter) DML-管理(insert ,delete ,update) DQL-查询(select

MySql基础学习-mysql安装

Linux环境下的安装 1检查是否已经安装 sudo service mysql start #若未安装,则提示: mysql: unrecognized service 2安装MySql #安装 MySQL 服务端.核心程序 sudo apt-get install mysql-server #安装 MySQL 客户端 sudo apt-get install mysql-client 安装过程中,提示确实yes即可,并且会提示设置root密码,设置即可. 3检查安装 sudo netstat

MySQL基础学习二

一,数据库操作 主键 主键是索引的一种,并且是唯一性索引,且必须定义为primary key.一个表只有一个主键,主键可以由多列组成. 声明主键的关键字为:primary key 简单的一个声明主键的示例: create table score(sid int auto_increment primary key)engine=innodb default charset=utf8 primary key为声明的关键字. 外键 如果一个实体的某个字段指向另一个实体的主键,就称为外键. 被指向的实

MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令

一.CMD中经常使用mysql相关命令 mysql -D, --database=name  //打开数据库 --delimiter=name  //指定分隔符 -h, --host=name  //server名称 -p,--password[=name]  //密码 -p,--port[=name] //端口号 --prompt==name  //设置提示符 -u, --user=name  //username -V, --version    //输出版本 能够组合使用,如 输入 -uu