码迷,mamicode.com
首页 > 数据库 > 详细

mysql基础使用

时间:2015-11-05 18:58:10      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:mysql

1、mysql使用

 1)客户端命令命令在客户端执行,不需要命令终止符,通常默认为分号“;”

\q|quit|exit

\?|?|h|help

\g:把命令发送给服务器端执行,相当于“;”

\G:把行分段显示

\c:取消命令执行

mysql> SELECT user,host,password from mysql.user\g
+------+------------+-------------------------------------------+
| user | host       | password                                  |
+------+------------+-------------------------------------------+
| root | localhost  | *CC67043C7BCFF5EEA5566BD9B1F3C74FD9A5CF5D |
| root | BAIYU\_179 |                                           |
| root | 127.0.0.1  | *CC67043C7BCFF5EEA5566BD9B1F3C74FD9A5CF5D |
|      | BAIYU\_179 |                                           |
+------+------------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> SELECT user,host,password from mysql.user\G
*************************** 1. row ***************************
    user: root
    host: localhost
password: *CC67043C7BCFF5EEA5566BD9B1F3C74FD9A5CF5D
*************************** 2. row ***************************
    user: root
    host: BAIYU\_179
password: 
*************************** 3. row ***************************
    user: root
    host: 127.0.0.1
password: *CC67043C7BCFF5EEA5566BD9B1F3C74FD9A5CF5D
*************************** 4. row ***************************
    user: 
    host: BAIYU\_179
password: 
4 rows in set (0.00 sec)

 2)服务器端命令命令发送到服务器端执行

BIF:内建函数

SELECT,

选取选部分行)和投影(选部分列)

select col1,col2,...from tb1,tb2,...where clause;

where col1 > 30;

SHOW DATABASES; 显示有权限查看的所有库

USE database_name:使用某库

SHOW TABLES; 显示其库所有表

CREATE DATABASE database_name;创建库

DROP DATABASE database_name;删除某库

mysql> SELECT CURRENT_TIME();
+----------------+
| CURRENT_TIME() |
+----------------+
| 00:10:18       |
+----------------+
1 row in set (0.00 sec)

命令帮助的获取:mysql> help KEYWORD

命令不区分字符大小写(建议大写),但与文件系统相关的部分是否区分大小写根据OS    

 3)mysql使用:

          交互模式:

          非交互|批处理模式:

[root@BAIYU_179 ~]# mysql -uroot -p123456789 -e ‘SELECT USER();‘
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+
[root@BAIYU_179 ~]# echo -e "SHOW DATABASES;\nCREATE DATABASE testdb;\nSHOW DAT
ABASES;" > a.sql
[root@BAIYU_179 ~]# mysql -uroot -p123456789 < a.sql                           
Database
information_schema
mysql
performance_schema
test
Database
information_schema
mysql
performance_schema
test
testdb

 4)键:key

约束:constraint 

   主键约束:对一张表来讲,主键只能有一个,主键数据不能相同,主键不能为空(NULL)

 唯一键约束:可以为NULL,可以有多个

   外键约束:

   检查式约束:用户自定义有效取值范围

:就是选取出来的字段

主键:能唯一标识表中每一个记录的字段或字段的组合

候选键:能作为主键的字段,

 5)表:table

由行和列组成的而为关系

字段:字段名,约束,字段类型

创建表:

     CREATE TABLE table_name(col1_name col1_type 修饰符,col2 col2_type 修饰符...);

删除表:

      DROP TABLE table_name;

字段或字段类型还可以有修饰符:

NOT NULL:不能为空

NULL:可为空

UNSIGNED:无符号,无负值

DEFAULT:

AUTO_INCREMENT:自动增长类型的字段必须为主键或唯一键

PRIMARY KEY:主键,如何把多个字段定义为主键则用括号把多个字段括起来在后面加PRIMARY KEY

字符要加上引号,数值不能加引号                       

mysql> CREATE TABLE students(name varchar(30),age tinyint,gender ENUM(‘f‘,‘m‘))
;
Query OK, 0 rows affected (0.02 sec)

mysql> DESCRIBE students;
+--------+---------------+------+-----+---------+-------+
| Field  | Type          | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| name   | varchar(30)   | YES  |     | NULL    |       |
| age    | tinyint(4)    | YES  |     | NULL    |       |
| gender | enum(‘f‘,‘m‘) | YES  |     | NULL    |       |
+--------+---------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> DROP TABLE students;
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW TABLES;
Empty set (0.00 sec)

mysql> CREATE TABLE students(name varchar(30) NOT NULL,age tinyint UNSIGNED NOT
 NULL,gender ENUM(‘F‘,‘M‘) DEFAULT ‘M‘);
Query OK, 0 rows affected (0.00 sec)

mysql> DESC students;
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| name   | varchar(30)         | NO   |     | NULL    |       |
| age    | tinyint(3) unsigned | NO   |     | NULL    |       |
| gender | enum(‘F‘,‘M‘)       | YES  |     | M       |       |
+--------+---------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> CREATE TABLE students(stuID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY
 KEY, name varchar(30) NOT NULL,age tinyint UNSIGNED NOT NULL,gender ENUM(‘F‘,‘
M‘) NOT NULL DEFAULT ‘M‘);
Query OK, 0 rows affected (0.01 sec)

mysql> DESC students;
+--------+---------------------+------+-----+---------+----------------+
| Field  | Type                | Null | Key | Default | Extra          |
+--------+---------------------+------+-----+---------+----------------+
| stuID  | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30)         | NO   |     | NULL    |                |
| age    | tinyint(3) unsigned | NO   |     | NULL    |                |
| gender | enum(‘F‘,‘M‘)       | NO   |     | M       |                |
+--------+---------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

 6)数据

插入:

INSERT INTO table_name(col1,col2,...) value|values(val1,val2,...)

INSERT INTO table_name VALUES(val1,val2,...)

mysql> INSERT INTO students values(1,‘xj‘,25,‘M‘);
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM students;
+-------+------+-----+--------+
| stuID | name | age | gender |
+-------+------+-----+--------+
|     1 | xj   |  25 | M      |
+-------+------+-----+--------+
1 row in set (0.00 sec)

mysql> INSERT INTO students values(2,‘xxj‘,23,‘M‘),(3,‘xiexiaojun‘,24,‘M‘);
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM students;                 
+-------+------------+-----+--------+
| stuID | name       | age | gender |
+-------+------------+-----+--------+
|     1 | xj         |  25 | M      |
|     2 | xxj        |  23 | M      |
|     3 | xiexiaojun |  24 | M      |
+-------+------------+-----+--------+
3 rows in set (0.00 sec)

mysql> INSERT INTO students(name,gender) value(‘xx‘,‘M‘),(‘xiexie‘,‘F‘);       
Query OK, 2 rows affected, 1 warning (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 1

mysql> SELECT * FROM students;
+-------+------------+-----+--------+
| stuID | name       | age | gender |
+-------+------------+-----+--------+
|     1 | xj         |  25 | M      |
|     2 | xxj        |  23 | M      |
|     3 | xiexiaojun |  24 | M      |
|     4 | xx         |   0 | M      |
|     5 | xiexie     |   0 | F      |
+-------+------------+-----+--------+
5 rows in set (0.00 sec)

查询:

    SELECT col1,col2,... FROM table_name WHERE; 条件表达式;

    SELECT * FROM table_name;

mysql> SELECT name,age,gender FROM students WHERE age>20;
+------------+-----+--------+
| name       | age | gender |
+------------+-----+--------+
| xj         |  25 | M      |
| xxj        |  23 | M      |
| xiexiaojun |  24 | M      |
+------------+-----+--------+
3 rows in set (0.00 sec)

mysql> SELECT name,age,gender FROM students WHERE gender=F; 
ERROR 1054 (42S22): Unknown column ‘F‘ in ‘where clause‘
mysql> SELECT name,age,gender FROM students WHERE gender=‘F‘;
+--------+-----+--------+
| name   | age | gender |
+--------+-----+--------+
| xiexie |   0 | F      |
+--------+-----+--------+
1 row in set (0.00 sec)

mysql> SELECT name,age,gender FROM students WHERE age<25 AND gender=‘F‘; 
+--------+-----+--------+
| name   | age | gender |
+--------+-----+--------+
| xiexie |   0 | F      |
+--------+-----+--------+
1 row in set (0.00 sec)

删除:

     DELETE FROM table_name;

     DELETE FORM table_name WHERE 条件表达式;

LIKE:匹配通配符

        %:任意长度的任意字符

        _:任意单个字符 

RLIKE:正则表达式      

mysql> DELETE FROM students WHERE age<20;
Query OK, 2 rows affected (0.00 sec)

mysql> SELECT * FROM students;           
+-------+------------+-----+--------+
| stuID | name       | age | gender |
+-------+------------+-----+--------+
|     1 | xj         |  25 | M      |
|     2 | xxj        |  23 | M      |
|     3 | xiexiaojun |  24 | M      |
+-------+------------+-----+--------+
3 rows in set (0.00 sec)

mysql> DELETE FROM students WHERE NAME LIKE ‘%o%‘;      
Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM students;                    
+-------+------+-----+--------+
| stuID | name | age | gender |
+-------+------+-----+--------+
|     1 | xj   |  25 | M      |
|     2 | xxj  |  23 | M      |
+-------+------+-----+--------+
2 rows in set (0.00 sec)

更新:

    UPDATE table_name SET col1=values,col2=values,...;

    UPDATE table_name SET col1=values,... WHERE 条件表达式;

mysql> UPDATE students SET age=30;
Query OK, 2 rows affected (0.02 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> SELECT * FROM students;    
+-------+------+-----+--------+
| stuID | name | age | gender |
+-------+------+-----+--------+
|     1 | xj   |  30 | M      |
|     2 | xxj  |  30 | M      |
+-------+------+-----+--------+
2 rows in set (0.00 sec)

mysql> UPDATE students SET age=33 WHERE STUID=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM students;                  
+-------+------+-----+--------+
| stuID | name | age | gender |
+-------+------+-----+--------+
|     1 | xj   |  33 | M      |
|     2 | xxj  |  30 | M      |
+-------+------+-----+--------+
2 rows in set (0.00 sec)


2、字段|数据类型

    字符型:

        char(N):固定长度,N指字符数,不区分大小写

     varchar(N):可变长度,N指最大字符数,不区分大小写

     binary(N):区分大小写

     varbinary(N):区分大小写

     text(N):大段文本,不区分大小写

     blob(N):大段文本,区分大小写    

    数值型:

      精确数值型:

               int(整形):tinyint(微,1B),smallint(小,2B),mediumint(中,3B),int(4B),bigint(大,4B)

               decimal(十进制)

      近似数值型:

              float:单精度

              double:双精度

日期时间型:

        date,3B

        time,3B

        datetime,8B

        timestamp:时间戳

    布尔型:

      NULL:

   内置类型:

          ENUM:枚举型(一定范围内跳一个,字符型)

          SET:集合型(集合内字符任意组合,不能使用集合外的字符)        


数据类型的作用:

    比较方式:排序方式

    存储空间:取值范围

    参与的运算:

mysql基础使用

标签:mysql

原文地址:http://xiexiaojun.blog.51cto.com/2305291/1710127

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!