MySql学习笔记(3)--sql及DDL语句操作

1sql介绍

         结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

 

2、MYSQL-SQL语句分类

 

DML(data manipulation language)是数据操纵语言:

          开发人员常用的命令)命令有SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的表数据进行操作的语言

DDL(data definitionlanguage)是数据定义语言:

        DBA用,开发人员很少用)命令有show,ALTER,CREATE、DROP,等,DDL主要是用在对数据库实例、表、列等数据库对象的定义和操作

DCL(DataControlLanguage)是数据库控制语言:

DBA)是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。

 

3、常用DDL命令操作

 

    数据库命名:数据库实例名、表名、列名通常单词都是小写字母通过下划线分隔,很多数据库里不区分大小写。

 

1)数据库实例相关

   

    数据库实例:一个数据库服务器可以有很多数据库实例,一般一个数据库实例对应一个项目(产品),每个实例里可以有很多张表(实体),可以把数据库实例理解为表的仓库。

    简单理解:对应java的包,包是组织管理类,数据库实例组织管理表。

 

1.1、查看所有数据库实例

 

   SHOW DATABASES; 

 

1.2、创建数据库实例

   

   CREATE DATABASE dbname;

 

1.3、选择将要操作的数据库实例

 

   USE dbname;  

 

1.4、删除数据库实例

 

   DROP DATABASE dbname;  
    DROP DATABASE  if exists  dbname;  

 

 

2)数据库中表相关

 

 表中相关概念

    1)表(实体):可以理解为就是java中的类,类可以有多个对象,表可以有多条记录。类中定义了对象拥有的属性(有类型)。

表中定义了记录的各种列(有类型)。表中可以存储很多的记录。

    2)列(字段)(属性):可以理解为java中类的成员变量,每一条记录可以有多个列组成,如:张三,18,男,170。这条记录,分成了多个列存储,可更加高效管理数据。

    3)类型(域):为列指定的数据类型,与java数据类型(字符串,数字,时间)类似。

    4)主键(关键字):用来判断不同记录,每一条记录的主键都不同,主键是特殊的列或列组合(联合主键),理解为java的对象的地址

    例如:人的对象的地址,手的对象的地址。

    5)外键:用来指定该列数据,参考了某个表的列,该列数据依赖某一个参考列。不能随便填值,必须是参考列的值或null可以理解为java类中组合其他类(成员变量),该值只能是其他类的对象的地址或null

    例如:人的对象里持有的手的对象的地址。

    注意:某个表a设置了a1列为外键,外键参考表b的b1列,那么这里a则是从表,b是主表。添加数据的时候先主表,后从表。(因为外键列的值,必须是参考列的值或null

 

2.1、选择将要操作的数据库实例(执行该代码后,后续的表操作针对我们设置的数据库实例)

 

    USE dbname;  

2.2、查询当前使用数据库实例包含的所有表

   show tables;

 

2.3、创建表

CREATE TABLE tablename(

    //列(字段)列表

    列名1   类型    相关配置,

    列名2   类型    相关配置,

    列名3   类型    相关配置

    ....

);

    

CREATE TABLE tablename(

   id INT(11) NOT NULL auto_increment,

    moneyint(10)  unsigned zerofill default NULL,

   name VARCHAR(256) NOT NULL,

  PRIMARY KEY (`id`)--指定该表的主键,可以多个列(关键字)

);  

 

2.4、显示表结构信息(列信息)    

 

    desctablename

 

2.5、查看表创建语句(完整语句=包含默认值)

 

    showcreate table tablename;

 

2.6、删除表

 

   DROP TABLE tablename; 
    DROP TABLE if exists tablename; (mysql 特有的)

 

2.7、表结构修改

 

   2.7.1、修改表字段类型

 

    语法: ALTER TABLE tablename MODIFY [COLUMN]column_definition [FIRST | AFTER col_name]

    ALTER TABLE tablename MODIFY name CHAR(128) NOT NULL; 

 

column_definition:cloumnnamecloumntype

 

  2.7.2、增加表字段

 

    语法:ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]; 

    ALTER TABLE tablename ADD age INT(11) NOT NULL; 

 

  2.7.3、删除表字段

 

    语法: ALTER TABLE tablename DROP [COLUMN] col_name; 

   ALTER TABLE tablename DROP age;  

 

  2.7.4、表字段改名和类型

    

    语法: ALTER TABLE tablename CHANGE [COLUMN] old_col_name new_col_definition [FIRST | AFTER col_name]; 

    ALTER TABLE tablename change name uname CHAR(64); 

 

注意:CHANGE和MODIFY都可以修改表字段定义,不同的是CHANGE写两次字段名,但是CHANGE可以修改列名,而MODIFY则不能。

 

  2.7.5、修改字段排列顺序

    

     上面介绍的修改表定义后面都有一个可选项目[FIRST | AFTER col_name],这个选项可以用来修改字段在表中的顺序,ADD新增字段的默认位置是在表的最后,CHANGE和MODIFY默认不改动字段的位置。    

在上表中添加birth字段,并放到列id后面:  

    ALTER TABLE tablename ADD birth DATETIME AFTER id;  

再次修改,把它放到uname表后面:  

       ALTER TABLE tablename MODIFY birth DATETIME NOT NULL AFTER uname; 

 

  2.7.6、修改表名

 

  语法:ALTER TABLE tablename RENAME [TO] new_tablename; 

      如把上面表名tablename改成test:  

   ALTER TABLE tablename RENAME test;  

 

练习-ddl语句

 

3、图形化工具 

 navicat(推荐) 

   多数据库

   多连接

   可视化表操作

   逆向到模型

       ......

       ......

 

 mysql workbench

 phpMyAdmin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值