jdbc
1 sun提供的jdbc完成以下功能
1 与数据库建立连接 2 执行sql语句 3 获取执行sql语句执行结果
2 数据库驱程序是jdbc程序和数据库之间的转换层,负责将jdbc映射成特定数据库调用。
3 数据库操作语句 默认以分号作为每条命令结束符
数据库一个实例可以同时包含多个数据库 , 当前实例下包含多少数据库 show databases;
删除数据库 drop database whe;
进入数据库 use test;
查看表结构 desc test;
mysql -p password -u username -h hostname
4 数据库语句
1 查询语句 select 2 DML 数据操作语句 insert update delete 3 DDL数据定义语句 create alter drop 和 truncate 4 DCL 数据控制 grant 和 revoke
5 事务控制 commit rellback savepoint
5 标识符格式 1 必须以字母开头 2 包括字母,数字,3个特殊字符 (#_$) 3 多个单词连缀,单词间_分割
DDL 语句是操作数据库对象的语句,包括创建(create) 删除(drop) 修改(alter) 数据库对象,数据表是最基本的数据库对象,存储数据的逻辑单元,还包括
创建表
CREATE TABLE test ( id INT, price DECIMAL, NAME VARCHAR(255) DEFAULT 'xxx', descs TEXT, img BLOB, DATE DATETIME );
数据类型
通过子查询建表
CREATE TABLE hah
(id INT, pri DECIMAL)
AS
SELECT id, price FROM test;
ALTER TABLE test ADD aaa VARCHAR(255) DEFAULT 'xxx'; 增加
ALTER TABLE test MODIFY aaa INT; 修改
ALTER TABLE test DROP aaa; 删除
ALTER TABLE haha RENAME ro wowo; 重命名表
ALTER TABLE test CHANGE descs desb INT; 重命名列
删除表
TRUNCATE haha; 表结构没被删除
DROP TABLE hah; 表结构被删除
约束:是在表上强制执行的数据校验规则,保证数据库里数据的完整性,当表中数据存在相互依赖时,保护相关数据不被删除。和表一样是数据库对象,为表指定约束有两个时机 1 创建表时 2 以修改表的方式增加约束
非空约束 not null null特征 1 所有类型都可以是null int boolean 2 与Java类似 空字符串不为null 0 也不为null
id INT NULL;
id INT NOT NULL; // 建表时
ALTER TABLE test MODIFY aaa INT NOT NULL; 增加非空约束
ALTER TABLE test MODIFY aaa INT NULL; 取消非空约束
唯一约束: unique 指定列或指定列组合不允许出现重复 , 但可以出现多个null ,建立唯一约束时会建立相应的唯一索引。
DATE DATETIME UNIQUE 定义列时
CONSTRAINT aas UNIQUE(id, price)
);
ALTER TABLE test ADD UNIQUE a(id);
ALTER TABLE test DROP INDEX a;
主键约束 : 相当于非空,和唯一约束,即列既不能为空,也不能出现重复值,也不允许出现null
PRIMARY KEY(id),
CONSTRAINT aas PRIMARY KEY(id, price)
);
ALTER TABLE test ADD PRIMARY KEY a(id);
ALTER TABLE test DROP PRIMARY KEY;
外键约束:
CONSTRAINT aas FOREIGN KEY(t_id) REFERENCES techer(id) // 定义表时
);
ALTER TABLE test DROP FOREIGN KEY aas;
ALTER TABLE test ADD FOREIGN KEY aa(t_id) REFERENCES teacher(id) ON DELETE CASCADE // SET NULL // 删除或致NULL
check 约束
建表定义列名后CHECK(id > 0)
索引 : 当在表上建立主键 唯一 外键约束时,自动建立索引 create index indexname on tablename(列名) drop index indexname on tablename
CREATE OR REPLACE VIEW view_test
AS
SELECT * FROM test
WITH CHECK OPTION; 不允许修改视图
DROP VIEW view_test;
插入数据
INSERT INTO t1(NAME)
SELECT NAME FROM t2;
UPDATE t1 SET NAME = 'dd' WHERE id = 1;
DELETE FROM t1 WHERE id = 1;
DELETE FROM t1; // 删除整个表数据 表结构还在