MySQL商业版是由MySQL AB公司负责开发与维护,需要支付费用才能使用
MySQL社区版是由分散咋世界各地的MySQL开发者、爱好者仪器开发与维护,可以免费使用
两者区别:
mysql> show databases; ## 查看数据库信息(注意:大部分MYSQL命令要以分号结尾)
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql> use mysql; ## 使用某个数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables; ## 查看数据库中所有表项信息
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| engine_cost |
| event |
| func |
| general_log |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| user |
+---------------------------+
31 rows in set (0.00 sec)
mysql> describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(32) | NO | PRI | | |
| Select_priv | enum('N','Y') | NO | | N | |
| Insert_priv | enum('N','Y') | NO | | N | |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)
SQL语句概述
创建数据库和表
创建数据库
语法格式:CREATE DATABASE 数据库名
例:创建一个名为bbs的数据库
mysql> create database bbs;
Query OK, 1 row affected (0.00 sec)
创建数据表
语法格式:CREATE TABLE 表名(字段定义......)
例:create table info (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');
Query OK, 0 rows affected (0.01 sec)
含义:创建一个名为info的数据表(字段1是id,类型为整型000-999,不允许为空,定义为主键,并让它自增长;字段2是name,类型为字符串长度为10,不允许为空,长度为5,小数点后保留2位;字段3是address,类型为字符串,长度为50,约束default如果不填地址则自动用‘未知’替代它);
mysql> desc info; ## 显示数据表的结构
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(3) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| score | decimal(5,2) | YES | | NULL | |
| address | varchar(50) | YES | | 未知 | |
+---------+--------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
数据库提权
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
含义:允许使用root用户从任意终端进行访问所有数据库中的所有表
删除数据库和表
使用DDL语句删除库、表
删除指定的数据表
DROP TABLE [数据库名.]表名
例:mysql> drop table bbs.info; ## 删除数据库bbs中的info表
DROP DATABSES 数据库名
例:mysql> drop database bbs;
管理表中的数据
方法一:insert into info (id,name,score,address) values (3,'zhangsan',99.5,'hangzhou');
方法二:mysql> insert into info values(5,'lisi','80.5','chongqing');
mysql> create table new_table as select * from info where score >= 90;
修改、更新数据表中的数据记录
语法格式:UPDATE 表名 SET 字段名1=值1[,字段名2=值2] WHERE 条件表达式
例:update info set score=66 where name='zhangsan';
mysql> delete from bbs.test where name='zhangsan'; ## 删除数据库bbs中test表内name字段为zhangsan的数据
mysql> delete from test; ## 删除test表中的所有数据
mysql> delete from bbs.test where score >=90; ## 数据库bbs中test表内score字段值大于等于90的数据
DQL是数据库查询语句,只有SELECT
用于从数据表中查找符合条件的数据记录
查询时可不指定条件
语法结构:SELECT 字段名1,字段名2 ...... FROM 表名
例:mysql> select * from bbs.users; ## 查询bbs数据库中users表内所有内容
mysql> truncate table info;