SQL:一种关系数据库管理系统(Relational Database Management System ,RDMS)。
原子性:已被分割成最小块,不能被进一步分割的性质。
1,首先创建数据库。mysql> 为数据库cmd窗口每条命令的行标,命令以分号结尾,回车执行,不加分号回车为换行。数据库无视大小写,但是为了明确区分命令语句和各种名称、参数,命令语句全部大写,名称全部小写或首字母小写的驼峰式或小写单词下划线连接,不能用空格。
mysql> CREATE DATABASE test; test是数据库名称
2,创建完之后进入数据库。
mysql>USE test;
3,创建表 不同字段使用不同格式的数据类型,可以在字段声明后面添加,同时可以限定该字段的最大数据长度,sql使用的字段和Java不一样,具体要看情况使用,字段声明中加入 NOT NULL表示该字段不接受空值,如果赋值过程传入空值将会报错;DEFAULT 后跟字段的一个值为对该字段设置的默认值,如果字段设置为非空且有默认值,传值为空值时不报错,直接赋值为默认值。
mysql> CREATE TABLE table1
->( id INT(10),
->name VARCHAR(6) NOT NULL,
->birthday DATETIME NOT NULL DEFAULT ‘1999-09-09’
->);
4,检查创建的表,列出表的字段,数据类型,null(YES/NO是否允许空值);Key(键);Default(字段默认值);Extra 构成一个表显示在cmd窗口,只能看表结构,不能看到内容。DESC是DESCRIBE的缩写,两个关键词的效果一致。
mysql> DESC table1;
5,删除表。已存在的表不能重复创建,只能删除之后再创建,删除命令无论有没有数据都会把表删除,之后就找不回来了。
mysql> DROP TABLE table1;
6,向表中添加数据。列名顺序必须和值的顺序完全对应,输入文本类型的值都要加单引号,如CHAR,VARCHAR,DATE,BLOB.数值不用加单引号,如INT,DEC等
mysql>INSERT INTO table(column_name1,column_name2...)VALUES('value1','value2',...);
这里容易报错:
字段完整但少输入一个字段的值 / 输入值完整但少了一个字段 / 输入的值没有用逗号隔开
ERROR 1136-Column count doesn't match value count at row!
输入的字段值格式和声明时的不相符
ERROR 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO your_table(id,name,birthday,gender)VALUES
一个文本字段值没有加单引号
ERROR 1054 - Unknown column 'F' in 'field list'
7,insert语句的三种变形。
(1)mysql> INSERT INTO your_table(column2,column1,column3,...)VALUES('value2','value1','value3',...);
语句中列名称可以不按声明时的顺序,但是改变顺序之后,赋值顺序也要改。
(2)mysql> INSERT INTO your_table VALUES('value1','value2','value3','value4');
列名称可以省略,但是省略之后赋值必须对所有字段进行,不能少任何一个,且顺序必须完全按照声明顺序,不能错乱。
(3)mysql> INSERT INTO your_table(column1,column3)VALUES('value1','value3');
可以对所有字段的一部分进行插入值操作,未赋值字段值为空,赋值需要严格按照一一对应的规则。