二 MySQL初步,数据类型及SQL语句

DBMS的功能:

   数据管理独立性;

   有效地完成数据存取

   数据完整性和安全性

   数据集中管理

   并发存储与故障恢复

   减少应用程序开发周期

MySQL:

   -h 127.0.0.1 localhost 客户端和服务端在同一台机器,连接方式:

   linux: socket 套接字文件 本机

   WINDOWS:memory 共享内存

mysql用户名中定义了该用户可以从哪里登录MYSQL服务器

Mysql客户端:

   交互式模式

   批处理模式  执行MYSQL脚本

交互式模式中的命令类别:

   客户端命令   客户端命令不需要以分号结尾 

mysql常用客户端命令如下:

如果想获取客户端命令的帮助信息则:mysql> help

                                       

mysql> quit或\q    #表示退出mysql
mysql> go或\g     #表示无论语句的结束符是什么都把语句送到服务器端执行,是在当被修改默认结束符后又不知道的情况下使用
例如:
mysql>  select  database()\g     #显示当前所在的数据库
mysql> use或\u 数据库名称      #表示设定默认数据库 
例如:
mysql> \u  test     #表示使用test这个数据库
mysql> ego或\G    #表示sql命令取回的数据纵向显示 
例如:
mysql>  select  * from mysql.user\G     #表示读取mysql库中user表中的所有数据,如果不用\G,那数据可读性不高
mysql> system或\!  #表示在不退出mysql客户端程序下执行shell命令,这个有点类似在vim中执行shell命令
mysql> status或\s      #表示获取当前mysql的状态信息  
mysql> delimiter或\d    #表示更换语句结束符,也就是可把默认的分号结束符号更换成其他的符号


         服务器端命令  必须使用语句结束符,默认为分号“;”

 常用服务器端命令: 


mysql>  select  version();     #表示显示mysql数据库的版本号
mysql> show databases;     #显示mysql中有哪些数据库
mysql> show databases like  't%' ;     #显示以字母“t”开头的数据库
mysql> show variables;    #显示服务器参数变量,一样可以使用‘‘like’’这样的子句来做模糊查找
mysql> show variables like  'datadir%' ;
mysql> show status;     #显示服务器状态变量
mysql> help create table   #获取创建表支持的数据类型
mysql> show character  set ;    #显示mysql所支持的字符集
mysql> show collation;   #显示排序规则
mysql> show processlist;  #显示服务器当前所有mysql线程列表
mysql> show indexes from 表名;   #显示表中的索引信息
mysql> show table status\G   #查看当前默认数据库中表状态,有“\G”结尾的不要加分号
mysql> show table status [from |  in ] 数据库\G    #查看指定数据库中的表状态

MySQL默认的三个数据库:

information_schema 把mysql运行过程中产生的数据保存在内存中的数据库。(保证兼容)

mysql 存放数据库元数据

test 测试时使用


关系型数据库对象:

  库 

 

  索引

  视图

  约束

  存储过程

  存储函数

  触发器

  游标

  用户

  

  权限

  事物


表:

  行:row 

  列: field,column

  表:实体


字段名称:数据类型,类型修饰符(限制)

       字符 CHAR(n) VARCHAR(n)默认不区分大小写 最多256个字符

           BINARY(n) VARBINARY(n)区分大小写 65553

           TEXT(n)

           BLOB(n)


表示众多字符的字符类型:

text,blob这两种是表示众多字符型,text不区分大小写,blob区分大小写。这两种类型字符还有相应的变体

text:tinytext,text,mediumtext,longtext  存储的内容大小依次增大

blob:tinyblob,blob,mediumblob,longblob   存储的内容大小依次增大

这种类型的实际数据不是存放在表中的,而是存放在数据库外围的,表中只是存放了指向相应对象的指针。 


常用修饰符:not null,default  '默认值 '

       数值  修饰符:unsigned (无符号)

          精确数值

               整型 TINYINT 1个字节 SMALLINT INT BIGINT 

               十进制 DECIMAL

          近似数值

               浮点型

                FLOAT

                DOUBLE

       日期

          DATE

          TIME

         DATETIME

         STAMP

         布尔 

mysql命令不区分大小写,但一般大写 

DDL:数据定义语言(结构)

  CREATE #在数据库中创建对象

  ALTER #修改数据结构

  DROP #删除对象

  RENAME #重命名对象

DML:数据操作的语言 (内容)

  INSERT #向一个表格中插入数据

  UPDATE #更新一个表格中的已有数据

  DELETE #删除表格中的数据

DCL:数据控制语言(权限)

  GRANT #赋予一个用户对数据库或数据表格等制定权限

  REVOKE #删除一个用户对数据库或数据表格等制定权限


DDL:

创建数据库:

CREATE DATABASE db_name;

CREATE DATABASE IF NOT EXISTS db_name;

删除数据库:DROP DATABASE db_name;

创建表:

    CREATE TABLE tb_name(列1 数据类型 修饰符,列2 数据类型 修饰符,..列n 数据类型 修饰符);

查看库中的表;SHOW TABLES FROM db_name;

查看表的结构:DESC tables_name;

删除表:DROP TABLE tables_name;


修改表:ALTER TABLE tb_name MODIFY #改变字段属性

                 CHANGE #改变字段名称

                  ADD

                  DROP

 例:ALTER TABLE students ADD course VARCHAR(20) NOT NULL;

    ALTER TABLE students CHANGE course Course VARCHAR(10) AFTER Name;

DML:

INSERT INTO tb_name (col1,col2,...) VALUES|VALUE('STRING',NUM,...);

例:INSERT INTO students (Name,Age) VALUE ('LingHuChong',25),('Xiaolongnv',18);

例:INSERT INTO students VALUES ('Xiaoxiangzi', 'Hamagong', '55');

UPDATE tb_name SET column=value WHERE CONDITION;

例:UPDATE students SET Course='pixiejianfa';

   UPDATE students SET Course='kuifabaodian' WHERE Name='Xiaoxiangzi';

#WHERE指定条件

选择指定以某字段做为搜索码,与某值做逻辑比较,筛选符合条件的行。

投影:筛选符合条件的列

例: SELECT Name,Age From students WHERE Course='pixiejianf';

DELETE FROM tb_name WHERE CONDITION;#删除的是行

例:DELETE FROM students WHERE Course='kuifabaodi';

SELECT col1,col2 FROM tb_name WHERE CONDITION;

*:所有字段

WHERE:没有条件表示所有行

DCL:

CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'; 创建用户

DROP USER 'USERNAME'@'HOST'; 删除用户


HOST:

   IP

   HOSTNAME

   NETWORK

   通配符  _:匹配任意单个字符,172.16.0 _

         %:匹配任意字符

例:jerry@'%'


GRANT pri1,pri2,... ON db_name.tb_name TO 'username'@'host' [IDENTIFIED BY 'PASSWORD'];

REVOKE  pri1,pri2,... ON db_name.tb_name TO 'username'@'host';

SHOW GRANTS FOR 'username'@'host';查看用户权限

GRANT ALL PRIVILEGES ON test.* TO  'xiejun'@'%'; 赋予用户xiejun从任何主机登录并对数据库test下所有表具有全部权限

你可能感兴趣的:(mysql)